python - 如何将 pickle 数据上传到 django FileField?

标签 python django file upload pickle

我想将用 Python 生成的大型数据集存储在 Django 模型中。我的想法是将数据 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")

在我的 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))

我应该如何修改最后一行以将 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()

所有这些都是在服务器端完成的,并且不允许用户上传 pickle 。我对其进行了测试,一切正常,但我愿意接受任何建议。

关于python - 如何将 pickle 数据上传到 django FileField?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/847904/

相关文章:

python - 获取所有请求输入值

python - 没有名为 unohelper 的模块

c# - 隐藏/取消隐藏文件效果不佳

c++ - 问题从 C++ 中的二进制文件读取对象

c++ - 在 C++ 中确定已更改数据的最佳方法

python - Django,将 HTML 代码存储在数据库中

python - 训练数据中的文档属于 LDA 中的特定主题

python - 从列表python中删除两个连续的元素

python - 使用 CountVectorizer 时对新文本使用 sklearn 逻辑回归 - 需要相同数量的稀疏矩阵特征

Django - 更改 'upload file' 按钮在模板中显示的内容