用Django处理缩略图的方法?

时间:2014-09-17 12:35:51

标签: django thumbnails

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

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

  • 只需使用图片字段中的图片,然后使用css更改模板中的尺寸。

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

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

缩略图应用程序有点复杂,需要一些额外的要求,如PIL,我需要做一些关于缓存的选择。不确定我是通过沿着这条路走下去还是有其他更智能的方式来赢得如此多的表现?提前规划扩展/性能是否更好?

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

1 个答案:

答案 0 :(得分:1)

首先,redis或memcached都不处理图像的缓存。 Memcached是一个简单的键值存储。 Redis本质上是一个键值存储,但它也支持其他类型。如名单。当谈到缓存图像时,你会使用像nginx这样的东西。

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

如果您想操纵图像,如果您使用的是Python 3,则需要PIL或Pillow。