【问题标题】:Ways to handle thumbnails with Django?使用 Django 处理缩略图的方法?
【发布时间】:2014-11-11 11:58:00
【问题描述】:

我将有不同的方式在我的模板中呈现对象图像。列表中的全尺寸、中等尺寸和较小的缩略图。它是一个动态结构,需要快速进行排序、搜索、过滤..

作为一个初学者,我正在考虑三种方法来处理这个问题:

  • 只需使用图像字段中的图像并使用 css 更改模板中的大小。

  • 在模型和媒体文件的不同字段中保存不同的图像版本(大小)。

  • 使用 sorl-thumbnail 或 easy-thumbnails 在模板中动态创建缩略图

缩略图应用有点复杂,需要一些额外的要求,比如 PIL,我需要对缓存做出一些选择。不确定我是否通过走这条路赢得了如此多的表现,或者是否有其他更聪明的方法?提前计划扩展/性能是否更好。

您如何处理缩略图?你用的是redis还是memcached?

【问题讨论】:

  • 也许您也可以将其标记为已回答:)

标签: django thumbnails


【解决方案1】:

首先,redis 和 memcached 都不处理图像缓存。 Memcached 是一个简单的键值对存储。 Redis 本质上用作键值存储,但它也支持其他类型。比如列表。当涉及到缓存图像时,您将使用 nginx 之类的东西。

其次,如果您希望页面尽快加载,则第一个选项不是最佳选择。因为它需要加载比必要更大的文件。第二个和第三个选项本质上是一样的。例如,Easy-thumbnails 不会在模板中动态创建缩略图。它会根据需要生成它们,然后您可以从您的 static_folder 访问这些缩略图。

如果你想操作图像,如果你使用 Python 3,你将需要 PIL 或 Pillow。

【讨论】:

  • 感谢您的回答。我已经阅读了关于 redis 的 sorl-thumbnails 要求。但你是说除此之外我还需要 nginx 吗?你会推荐任何缩略图应用程序吗?
  • 据我了解,sorl-thumbnails 在内部使用 redis/memcached/cached 数据库。它不适用于图像的实际缓存。图像的缓存发生在其他地方。 django-storages.readthedocs.org/en/latest 这可能对那部分有所帮助。
猜你喜欢
  • 1970-01-01
  • 2011-01-11
  • 2014-01-31
  • 2012-03-10
  • 2010-11-25
  • 2011-07-09
  • 2016-12-15
  • 2018-02-06
  • 1970-01-01
相关资源
最近更新 更多