【问题标题】:ImageField in Django with Image from diskDjango中的ImageField与来自磁盘的图像
【发布时间】:2013-04-11 13:30:19
【问题描述】:

我正在 Django 上编写一个画廊应用程序,我有一些问题。

我的目标是显示运行我的应用程序的计算机路径中的图像。

例如,我要显示的所有图像都位于“/usr/local/media/pictures”中

如果我在 MEDIA_ROOT 中设置路径“/usr/local/media/pictures”然后像这样显示我的图像 => (img src="/media/picture_1.jpg"/) where picture_1. jpg 在“/usr/local/media/pictures”中。

但现在我想使用一些直接从图像创建缩略图的应用程序(如 solr-thumbnail)。

我的问题是 solr-thumbnail 从 ImageField 创建缩略图,我不知道如何从路径创建 ImageField。

我已经在 ImageField 上搜索了一些文档,看起来我们需要在模型上声明 ImageField,但我不想将图像存储在我的数据库中。因为我的用户可以从他的文件资源管理器中删除/创建图像。我的应用程序没有上传。

感谢您的帮助。

【问题讨论】:

  • 编辑:我安装的 solr-thumbnail 很糟糕。我们可以只给 solr-thumbnail 一个文件,例如:image = open(pathimage) 然后在 tempalte 中:{% thumbnail image "200x200" crop="center" as im %} 就可以了。

标签: python django django-models


【解决方案1】:

您可以在此处找到有关低级 api 的说明

http://sorl-thumbnail.readthedocs.org/en/latest/examples.html#low-level-api-examples

或者,您可以构造一个 StaticFilesStorage 实例并使用它将 ImageFile 对象传递到您的模板中。

http://sorl-thumbnail.readthedocs.org/en/latest/template.html#source

【讨论】:

  • 嘿,谢谢 :) 我会试试的。我没有查看 solr-thumbnail 上的所有文档,因为我首先查看的是 ImageField ...我的错...
  • 别听阿雅的。 Django 是一个很棒的框架,即使您根本没有使用数据库。
【解决方案2】:

我的应用程序没有上传。

在这种情况下,使用ImageField 没有多大意义。该类型与CharField 的大部分区别在于一些额外的代码,使上传更容易。

如果它总是在本地机器上,我只会使用包含完整图像路径的CharField

TBH,听起来使用 Django 也没多大意义。如果您正在创建一个旨在对本地文件进行操作的应用程序,您最好使用wxPython 或类似的方式创建一个适当的 GUI。

【讨论】:

  • 是的,但我想使用一些为我创建缩略图的应用程序,他们需要图像。但是托马斯的答案看起来不错,我必须尝试。编辑:感谢您的建议,我使用 Django 是因为它看起来很有趣,但我会寻找 wxPython。
  • @user2285361 您也可以使用PIL 用大约 3 行代码创建缩略图。
  • 是的,我首先使用 PIL (image.thumbnail(THUMB_SIZE)) 创建缩略图,但我想使用 solr-thumbnail 进行缓存。
猜你喜欢
  • 2013-04-24
  • 2015-01-08
  • 1970-01-01
  • 2021-08-25
  • 2017-08-23
  • 2015-12-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多