Gat*_*ter 8 python django thumbnails
我想根据URL中的参数动态创建缩略图.例如,http://mysite.com/images/1234/120x45.jpg
将为120x45
图像ID 创建缩略图1234
.
显而易见的解决方案是使用django视图执行以下操作:
这应该"有效",但我关注的是性能.我不喜欢使用django来提供静态内容的想法.有什么其他方法可以解决这个问题?
小智 8
您不必使用Django直接提供静态内容.只需让您的服务器将图像文件夹的404请求路由到Django视图,在该视图中,它会拆分文件名并生成相应的缩略图,然后重定向回原始URL(希望不再是404).
至于另一个答案的django-imagekit建议,我不确定它是否可以让你根据URL 动态生成图像大拇指,但我当然建议将它用于它具有的所有功能.
编辑:
至于实际的URL结构,我觉得更典型的/images/filename-120x45.jpg
是允许您更轻松地过滤掉与动态缩略图生成无关的404请求.比如说,有大量的404错误/images/original_size_image.jpg
.你不希望那些被路由到Django,你只能匹配该格式的文件名与正则表达式.[结束编辑]
你必须小心,但让任何人都知道这个功能垃圾邮件你的Django应用程序.他们可以通过触手可及的无限数量的图像大小和文件名组合来杀死它.您需要确定如何对这些请求设置上限,例如,如果任一维度大于原始维度,则重定向回404,或者甚至计算如何限制同一图像的多个维度的请求.也许这就是你在提到"锁定"时所得到的.
顺便说一句,我看到你已经标记了Apache,但我真的很想建议你通过像Nginx之类的东西来提供静态内容.如果您使用的静态文件服务器在提供静态文件时不完全废话,您可以否定动态图像请求的额外开销.
归档时间: |
|
查看次数: |
8618 次 |
最近记录: |