Django 将图像存储在数据库中
有谁知道是否有一种开箱即用的方式将图像直接存储在数据库中,而不是使用 ImageField 模型类型将其上传到 MEDIA_ROOT。 如果有,那么如何提供这些图像呢?
干杯
Does anyone know if there's an out-of-the box way of storing images directly in the database vs. using ImageField model type that simply uploads it to the MEDIA_ROOT.
And if there is, how does one serve those images then?
Cheers
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
不,没有。这是有充分理由的。从数据库存储和提供图像的效率极其低下。将它们存储在文件系统上,并直接从 Apache 提供服务。
No, there isn't. And for good reason. It's horribly inefficient to store and serve images from the database. Store them on the filesystem, and serve them directly from Apache.
这里有一个很好的解决方案: http://djangosnippets.org/snippets/1305/ 它存储内容在数据库 blob 中。
There is a nice solution here: http://djangosnippets.org/snippets/1305/ it stores content in a database blob.
Django 中似乎没有内置的
BlobField
。但是,有一个可用的 此处。我不确定它是否支持所有后端,但它可能适合您。这样,您就可以编写一个表格和表格了。将图像作为附件上传并将其作为 blob 存储在数据库中的视图。It seems there is no built-in
BlobField
in Django. However, there is one available here. I'm not sure if it supports all backends, but it might work for you. With that, you could write up a form & view that uploades the image as an attachment and stores it as a blob in the database.