【问题标题】:Django: Storing Images DatabaseDjango:存储图像数据库
【发布时间】:2017-09-28 04:13:05
【问题描述】:

之前我使用默认数据库 sqlite3,但今天我已将其更改为 postgresql。

我想将图像文件保存在数据库中而不是项目目录本身中。我该怎么做?

【问题讨论】:

    标签: python django


    【解决方案1】:

    将图像存储在 DB 中而不是 media 文件夹中并不是一个好主意。但是您可以为此使用BinaryField

    model.py

    class MyModel(model.Model):
        image = models.BinaryField(blank=True)
    

    view.py

    def image(request):
        image_file = request.FILES['image_file'].file.read()
        MyModel.objects.create(image=image_file)
    

    【讨论】:

    • 为什么 BinaryField 不是 ImageField ?使用ImageField 的优缺点是什么?
    • @MD.KhairulBasar ImageField 只是一个仅存储文件名的文本字段。
    • 因为 ImageField 将图像存储在 MEDIA_ROOT 文件夹中,BinaryField 存储在 DB 中。 TS想用BD。 docs.djangoproject.com/en/1.11/ref/models/fields/…
    • 谢谢。知道了。 :D
    • @Selcuk 先生,这不仅仅是存储文件名,而是将整个文件存储在与 Project 相同的文件夹中。它会减慢进程吗?
    猜你喜欢
    • 2022-11-21
    • 2011-04-15
    • 2021-10-13
    • 2013-08-21
    • 2013-09-15
    • 2020-03-07
    • 2021-07-24
    • 2011-08-12
    • 2010-12-27
    相关资源
    最近更新 更多