一个简单的,s3支持的缩略图字段。
django-athumb的Python项目详细描述
Django Athumb
<表> < COL/> < COL/> <正文> 作者:格雷格·泰勒 许可证:bsd <表>在s3上存储图像及其缩略图有点笨拙 詹戈虽然这个django应用程序可以处理更典型的存储后端,但是 用于接受图像上载、缩略图并上载原始图像 再加上S3的拇指。然后您可以在模板中找到缩略图 像这样做:
<img src="{% thumbnail some_obj.image '80x80' %}" />
这将自动装配远程s3 url以从中检索缩略图。 没有进行错误检查,并且为了 速度:
django athumb的优势
Django Athumb的主要优势是,不像Sorl和其他人, 缩略图是在用户上传原始图像时生成的。 我们不是按需生成拇指,或者需要缓存层,而是生成 上传时预定义的缩略图。这会带来一些巨大的好处:
- 在第一次保存/上载之后,我们从不检查是否存在文件。我们 假设它存在,跳过命中缓存或磁盘的需要。这使得 我们比其他选择更快更简单。
- 因为我们通过models.py预先定义了每个可能的缩略图,所以 一组定义好的可能值。缩略图的大小也可以命名为任何东西, 无论是"60x60"裁剪还是"中等nocrop"。
django athumb的缺点
如果没有以下几点,这将是不公平的评估:
- 有些人可能更喜欢在模板中定义缩略图大小。这在很大程度上 首选项。
- 我们只支持简单的缩放/裁剪/定心作为缩略图操作。 索尔和其他人会给你更多的小玩意。
许可证
所有代码都在bsd样式的许可证下,有关详细信息,请参阅许可证。
资料来源:http://github.com/duointeranactive/django-athumb" rel="nofollow">http://github.com/duointeranactive/django-athumb
要求
- python=2.7
- django>;=1.6
- 底部=3.0
- 枕头>;=2.5.0
安装
要安装,请运行:
pip install django-athumb
或:
easy_install django-athumb
配置
设置.py
添加到已安装的应用程序中
'athumb'
添加到 settings.py中的 模板上下文处理器 :
'django.core.context_processors.request'
如果希望将s3存储作为默认文件后端:
# If you don't want this to be the global default, just make sure you # specify the S3BotoStorage_AllPublic backend on a per-field basis. DEFAULT_FILE_STORAGE = 'athumb.backends.s3boto.S3BotoStorage_AllPublic'
然后设置后端使用的一些值:
AWS_ACCESS_KEY_ID = 'YourS3AccessKeyHere' AWS_SECRET_ACCESS_KEY = 'YourS3SecretAccessKeyHere' AWS_STORAGE_BUCKET_NAME = 'OneOfYourBuckets'
如果您想使用虚荣域而不是s3.amazonaws.com,那么 首先应该在Amazon中配置它,然后将其添加到设置:
AWS_STORAGE_BUCKET_CNAME = 'static.yourdomain.com'
如果你想为你的缩略图(在 使浏览器在更改后重新获取图像的图像url),您可以 可以设置如下值:
MEDIA_CACHE_BUSTER = 'SomeValue'
不需要指定缓存缓冲区。
如果不使用默认的s3区域,可以使用以下命令定义它 设置:
<img src="{% thumbnail some_obj.image '80x80' %}" />0
在车型中使用
配置完以上所有内容后,就可以开始使用 穿上你的模特。下面是一个带有缩略图字段的示例模型。
<img src="{% thumbnail some_obj.image '80x80' %}" />1
有几点需要注意:
- 拇指中的元组格式为 (name,options) 。价值 for name 可以是任意字符串。注意,您可以使 命名维度或完全不同的名称。
- 存储 关键字很重要,用于指定 字段。如果你不指定 存储 ,使用默认后端。作为一个 快捷方式,您可以将 s3botostorage\u allpublic 设置为默认后端, aws的值将决定默认的bucket。
后端
django athumb提供了一个简化的s3boto后端,它是从 在Django Storages项目中。在大多数情况下,你会想使用 athumb.backends.s3boto.s3botostorage_allpublic ,因为它不使用https,并且 比s3botostorage快一点,因为它做了一些假设。
< div > 注此模块主要用于存储和提供图像到/从 S3我根本没有用标准的django文件系统后端测试过它, 尽管它应该起作用。