Django 二进制或 BLOB 模型字段

10 投票
2 回答
26482 浏览
提问于 2025-04-16 23:36

我有一个C#程序,可以把PDF文件插入到MySQL数据库里。现在我想通过Django来取出这个PDF,但Django的models.FileField需要一个“上传到”的参数,这意味着它实际上是把文件存储在文件系统里,而不是数据库里。有没有办法让我设置一个Django模型,这样我就可以直接把PDF存储在MySQL里呢?

谢谢!

2 个回答

16

更新一下,从Django 1.6开始,新增了一个叫做BinaryField的选项,可以用来存储大小最多为4GB的文件。你可以在这里了解更多信息:https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.BinaryField

1

我一直在处理同样的问题,就是把一个PDF文件写入MySQL的mediumblob字段,然后通过Django来获取。我把MySQL的字段类型设置成了mediumblob,而Django的字段类型设置成了textfield。我使用了查询集和HTTP响应来在浏览器中查看PDF对象(但不是直接在Django里查看)。

撰写回答