跳转到主要内容

Django缩略图

项目描述

Jazzband sorl-thumbnail on PyPI Supported Python versions Supported Python versions Documentation for latest version gh-actions Coverage

Django缩略图。

功能一览

  • 支持Django 4.2、5.0和5.1,遵循Django支持版本策略

  • 存储支持

  • 支持插拔式引擎:Pillow(Pillow)、ImageMagick(ImageMagick)、PIL(PIL)、Wand(Wand)、pgmagick(pgmagick)和 vipsthumbnail(vipsthumbnail

  • 支持插拔式键值存储(缓存数据库、Redis 和 AWS 的 DynamoDB)

  • 支持插拔式后端

  • 管理员集成,支持删除功能

  • 占位符生成

  • 灵活、简单的语法,不生成 HTML

  • ImageField 用于删除缩略图的模型(仅兼容 django 1.2.5 或更低版本)

  • CSS 样式裁剪选项

  • 智能裁剪,裁剪时移除图像边框

  • 垂直定位的边距计算

  • 缩略图的不同分辨率版本

更多信息请参阅文档(最新版本)

开发者

Jazzband

这是一个 Jazzband 项目。通过贡献,您同意遵守贡献者行为准则并遵循指南

如果您想提议新功能,请随意创建一个新的 Pull request。如果您需要开发支持或想与其他开发者讨论,请加入我们位于 freenode.net 或 Gitter 的 #sorl-thumbnail 频道。

有关发行版更新和更深入的开发讨论,请使用我们的 Google Groups 邮件列表。

测试

测试应该使用 tox 运行。运行 tox 将运行所有环境下的所有测试。但是,您可以使用 tox -e <env> 运行特定环境,所有环境的列表可以通过 tox -l 查看。这些测试需要文档中定义的不同引擎的依赖项。您可以使用存储库中的 Vagrantfile 将这些依赖项安装到 vagrant 镜像中。

用户支持

如果您需要使用 sorl-thumbnail 的帮助,请浏览 https://stackoverflow.com/questions/tagged/sorl-thumbnail 并使用 sorl-thumbnail 标签发布您的问题。

如何使用

获取代码

要获取最新稳定版本的代码,请使用 'pip'。

$ pip install sorl-thumbnail

在您的项目中安装

然后,在您项目的设置中的 'INSTALLED_APPS' 部分注册 'sorl.thumbnail'。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    'sorl.thumbnail',
]

模板使用

所有示例都假设您首先在模板中加载缩略图模板标记。

{% load thumbnail %}

简单使用。

{% thumbnail item.image "100x100" crop="center" as im %}
    <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}">
{% endthumbnail %}

更多示例请参阅文档中的模板示例部分。

模型使用

使用 ImageField,当删除时会自动删除键值存储中自身的引用及其缩略图引用和缩略图文件。请注意,这仅与 django 1.2.5 或更低版本兼容。

from django.db import models
from sorl.thumbnail import ImageField

class Item(models.Model):
    image = ImageField(upload_to='whatever')

更多示例请参阅文档中的模型示例部分。

低级 API

您可以使用 'get_thumbnail'

from sorl.thumbnail import get_thumbnail
from sorl.thumbnail import delete

im = get_thumbnail(my_file, '100x100', crop='center', quality=99)
delete(my_file)

更多示例请参阅文档中的低级 API 示例部分。

与其他缩略图生成器结合使用

或者,您可以通过 {% load sorl_thumbnail %} 而不是传统的 {% load thumbnail %} 来加载模板标记。这在项目中使用了多个使用相同名称(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 上运行得太慢了!

可能与您亚马逊S3后端实现相关,请参阅问题#351,由于存储后端审查,如果在尝试生成缩略图时存在现有缩略图,可能会大量使用S3 API。

如果您不愿意调整存储后端,一个快速的解决方案是设置

THUMBNAIL_FORCE_OVERWRITE = True

这样它将避免过度查询S3 API。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

sorl_thumbnail-12.11.0.tar.gz (667.1 kB 查看哈希值)

上传时间 源代码

构建分发

sorl_thumbnail-12.11.0-py3-none-any.whl (42.8 kB 查看哈希值)

上传时间 Python 3

由以下赞助

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面