bte*_*tel 5 python django upload file pickle
我想在Django模型中存储用Python生成的大型数据集.我的想法是将数据pickle到字符串并将其上传到我的模型的FileField.我的django模型是:
#models.py
from django.db import models
class Data(models.Model):
label = models.CharField(max_length=30)
file = models.FileField(upload_to="data")
Run Code Online (Sandbox Code Playgroud)
在我的Python程序中,我想做以下事情:
import random, pickle
data_entry = Data(label="somedata")
somedata = [random.random() for i in range(10000)]
# Next line does NOT work
#data_entry.file.save(filename, pickle.dumps(somedata))
Run Code Online (Sandbox Code Playgroud)
如何somedata
在file
保留使用upload_to
参数定义的路径时修改要存储的最后一行?
根据问题的答案,我提出了以下解决方案:
from django.core.files.base import ContentFile
import pickle
content = pickle.dumps(somedata)
fid = ContentFile(content)
data_entry.file.save(filename, fid)
fid.close()
Run Code Online (Sandbox Code Playgroud)
所有这些都在服务器端完成,并且不允许用户上传pickles.我测试了它并且它工作正常,但我对任何建议持开放态度.