一个简单的,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文件系统后端测试过它, 尽管它应该起作用。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java泛型重写抽象方法并具有子类的返回类型   Java中的字符串反转字符,同时保留一些字符   java将系统时间与我获取它的时间进行比较   java解析ODATA URL以在准备entityset之前读取ID值   java中的有界通配符下界泛型即使在传递超类时也不会编译   c#Java的JVM和Java的内部工作方式有什么不同。NET的CLR?   java如何在windows7上指定JDK的版本?   Java:列出单个目录中的所有文件(1020000+)   java使用Logback和Lombok   安卓谷歌玩java。lang.NullPointerException   使用RSA的解密结果在普通Java和Android中有所不同   具有默认连接池的java Spring引导   java我如何在一个坏的测试环境中前进?