gpt4 book ai didi

python - Django:ImageField 需要文件路径还是实际的图像对象?

转载 作者:行者123 更新时间:2023-11-30 23:21:31 27 4
gpt4 key购买 nike

运行:Windows 7、Python 3.3、Django 1.6

我对如何将图像存储为 Django 数据库中表的一部分感到困惑。有一个名为 ImageField 的字段,这里是 Docs

问题:

构建记录时我应该向 ImageField 传递什么:文件路径字符串?图像的 URL?或者图像本身的字节表示?或者是否有某种方法将图像加载到 Django 中,然后将其传递给该图像对象的引用(或指针)?

文档说:“默认情况下,ImageField 实例在数据库中创建为 varchar(100) 列。”,这让我认为它需要一个文件路径,因为它要求一个字符串。

文档还说它“需要 Pillow 库。”,我已经下载了该库,但它没有指定如何使用 Pillow 来实现此目的。

背景:我正在通过 django 构建 REST API,以发送和接收来自 Selenium 测试的日志文件并将它们存储在 SQL 数据库中。每个日志文件都带有屏幕截图,因此需要 ImageField。几天前刚开始使用 Django。

最佳答案

通过图像字段和图像字段派生表单,您可以将图像上传到 MEDIA_ROOT。

Imagefield 存储图像的路径。检查 django 文档的“媒体”部分,它描述了如何存储用户上传的图像。

图像字段还定义了图像的一些基本属性,例如宽度和高度。

在您设置的setting.py文件中:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

这表示我想将上传的文件存储在您的项目/媒体中,并且我也想在其中显示它们www.yoursite.com/media/path_to_image/image.png

然后你可以定义一个带有imagefield的类。

class YourClass(models.Model):
description = models.CharField(max_length=300, unique=True)
picture = models.ImageField(upload_to='myimages')

因此图像将存储在 yourproject/media/myimages 中并可在www.yoursite.com/media/myimages/image.png

创建新实例:

 from django.core.files import File
from idontknow import YourClass

yournewclass = YourClass(description='abc')

yournewclass.picture.save('name.png', File(open('path_to_pic/image.png', 'r'))

关于python - Django:ImageField 需要文件路径还是实际的图像对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24898099/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com