gpt4 book ai didi

django - Django 是否关闭并删除 TemporaryUploadedFiles 和 InMemoryUploadedFiles?

转载 作者:行者123 更新时间:2023-12-04 09:40:40 27 4
gpt4 key购买 nike

我已阅读所有 documentation对于 TemporaryUploadedFiles 和 InMemoryUploadedFiles,但他们从不谈论清理。我知道 Python 临时文件需要关闭才能自动删除。

@api_view(['POST', ])
def test(request):
#img is type InMemoryUploadedFile
for img in request.FILES.getlist('images'):
Model.objects.image = img
Model.save()

#vid is type TemporaryUploadedFile
for vid in request.FILES.getlist('videos'):
Model.objects.video = vid
Model.save()

在上面的代码中,TemporaryUploadedFiles 和 InMemoryUploadedFiles 是否被自动删除和清理?

最佳答案

这些文件被关闭,WSGI 处理程序可以提供一个名为 close 的方法。该方法称为请求的后处理。

Django 源代码 (http/request.py)

class HttpRequest:
...
def close(self):
if hasattr(self, '_files'):
for f in chain.from_iterable(list_[1] for list_ in self._files.lists()):
f.close()

编辑:

Django 全局配置了两种类型的文件上传器 InMemory 和 Temp 文件。所有这些类都实现了 close方法, request的close方法对象注册为 _resource_closers这些方法是从 HttpResponseBase 调用的的 close方法。

关于django - Django 是否关闭并删除 TemporaryUploadedFiles 和 InMemoryUploadedFiles?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62355175/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com