python - Django:这个 zip 文件在哪里创建?
问题描述
在某些情况下,我有一个django-rest-framework
项目。这个特定的端点接受一个 json blob,并在将其保存到 FileField 之前对其进行压缩。我的问题是——我创建的这个 zip 文件到底在哪里保存?只是根目录?这些需要定期清理吗?
class MyModel(models.Model):
...
def create_zip(self, user, jsondata):
filename = "data" + ".zip"
with gzip.GzipFile(filename, "w") as fout:
fout.write(jsondata.encode("utf-8"))
my_model = MyModel.objects.create(
user=user, animation_file=filename
)
解决方案
是的,似乎 zip 文件是在项目脚本的当前目录中创建的。这需要清理。
一个更清晰的方法是使用一些临时目录。例如,您可以TEMP_ROOT
使用模块创建一个设置并为您的文件添加临时根路径前缀,os
即
from django.conf import settings
import os
file_path = os.path.join(settings.TEMP_ROOT, filename)
并使用这个 file_path 给gzip.GzipFile()
方法而不是filename
.
请确保临时目录已经存在。
推荐阅读
- java - 在java中将大数字字符串转换为整数
- python - 如何使用 opencv+python+picamera 找到两个彩色对象
- python - 如何使用 win32com 在 Python 电子邮件中插入 Pandas 变量
- python-3.x - 这个 opencv-python 代码有什么错误?
- python - Django postgres查询结果为不同的数据库字段获得不同的结果
- html - 同一类元素的量角器定位器
- spring-boot - 使用 Jasypt 加密的 Spring Boot 外部化配置(引导问题)
- kubernetes - 运行 kubectl 命令 Helm post install
- bash - 如何将命令行参数传递给 docker-compose run?
- python - 收到一封空白电子邮件