Running:Windows 7、Python 3.3、Django 1.6
我对如何将图像存储为 Django 数据库中表的一部分感到困惑。有一个领域叫做ImageField
,这是Docs https://docs.djangoproject.com/en/1.6/ref/models/fields/#imagefield.
问题:
构建记录时我应该向 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'))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)