唐戈
sorl-thumbnail的Python项目详细描述
Django的缩略图。
功能一目了然
- 在Django supported versions policy 之后支持django 1.11、2.0和2.1
- python 3支持
- 存储支持
- 可插入引擎支持Pillow、ImageMagick、PIL、Wand、pgmagick和vipsthumbnail
- 可插入的键值存储支持(aws缓存的db、redis和dynamodb)
- 可插拔后端支持
- 具有删除可能性的管理集成
- 虚拟生成(占位符)
- 用于删除缩略图的模型的ImageField
- CSS样式裁剪选项
- 向后智能裁剪,裁剪时从图像中删除边框
- 垂直定位的边距计算
- 缩略图的其他分辨率版本
开发人员
这是一个Jazzband项目。通过贡献你同意 遵守Contributor Code of Conduct 然后跟着guidelines。
如果您想推荐一个新功能,可以创建一个新的拉取请求。 如果您需要开发支持或希望与其他开发人员讨论 在freenode.net或gitter加入我们的Sorl Thumnbail频道。
对于版本更新和深入开发讨论中的更多内容,请使用我们的邮件列表 在谷歌群组中。
- IRC频道:irc://irc.freenode.net/#sorl-thumbnail
- 邮件列表:sorl-thumbnail@googlegroups.comhttps://groups.google.com/d/forum/sorl-thumbnail
测试
这些测试应该与毒物和脓毒性测试一起进行。运行tox将对所有环境运行所有测试。 但是,可以运行具有tox-e<;env>;的特定环境,这是所有环境的列表 可通过tox-l找到。这些测试需要在 文件。可以使用 回购协议中的流浪者文件。
用户支持
如果需要使用sorl缩略图浏览的帮助http://stackoverflow.com/questions/tagged/sorl-thumbnail 并用sorl缩略图标记发布您的问题。
如何使用
获取代码
使用“pip”获取最新稳定版本的代码。
$ pip install sorl-thumbnail
在项目中安装
然后在的“已安装应用程序”部分注册“sorl.thumbnail” 项目的设置。
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sites', 'django.contrib.comments', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.contenttypes', 'sorl.thumbnail', )
模板使用
所有的例子都假设您首先在 您的模板。
{% load thumbnail %}
简单的用法。
{% thumbnail item.image "100x100" crop="center" as im %} <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> {% endthumbnail %}
请参见文档中Template examples部分的更多示例
模型使用
使用ImageField自动删除对键中自身的引用 值存储及其缩略图引用以及删除时的缩略图文件。
from django.db import models from sorl.thumbnail import ImageField class Item(models.Model): image = ImageField(upload_to='whatever')
参见文档中Model examples部分的更多示例
低水平api
您可以使用“获取缩略图”:
from sorl.thumbnail import get_thumbnail from sorl.thumbnail import delete im = get_thumbnail(my_file, '100x100', crop='center', quality=99) delete(my_file)
请参阅文档中Low level API examples部分的更多示例
与其他缩略图结合使用
或者,您可以通过{%load sorl_thumbnail%}加载模板标记。 而不是传统的{%load thumbnail%}。它在 使用多个缩略图库的项目 templateTag模块的相同名称(thumbnail):
{% load sorl_thumbnail %} {% thumbnail item.image "100x100" crop="center" as im %} <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}"> {% endthumbnail %}
常见问题
在amazon s3中太慢了!
可能与amazon s3后端的实现有关,请参见issue #351 如果在尝试时存在一个现有缩略图,则存储后端检查 生成广泛使用s3 api的缩略图
如果您不愿意调整存储后端,一个快速的解决方法是设置:
THUMBNAIL_FORCE_OVERWRITE = True
所以它将避免过度查询s3 api。