跳转到主要内容

为最受欢迎的Django缩略图生成器提供占位图。

项目描述

Dummy thumbnails for most popular Django thumbnail generators.

PyPI Version Build Status GPL-2.0-only OR LGPL-2.1-or-later

有时你有一个Django站点的数据库,并且需要快速启动它以修复/开发,但随后你意识到图片缺失,你需要有图片,因为要么你的布局损坏,要么在最坏的情况下,整个站点损坏(500)。这个库是为了开发人员编写的,以便以最短的时间和最小的努力避免上述问题。

先决条件

  • Django 1.8, 1.9, 1.10, 1.11, 2.0, 2.1, 2.2

  • Python 2.7, 3.5, 3.6, 3.7

尽管 django-dummy-thumbnails 没有针对旧版本的Django进行测试,但测试通过Django版本1.5,1.6和1.7。

安装

  1. 在虚拟环境中安装

    来自PyPI的最新稳定版本

    pip install django-dummy-thumbnails

    或来自GitHub的最新稳定版本

    pip install https://github.com/barseghyanartur/django-dummy-thumbnails/archive/stable.tar.gz

    或来自BitBucket的最新稳定版本

    pip install https://bitbucket.org/barseghyanartur/django-dummy-thumbnails/get/stable.tar.gz
  2. dummy_thumbnails 添加到全局 settings.py 中的 INSTALLED_APPS

    INSTALLED_APPS = (
        # ...
        'dummy_thumbnails',
        # ...
    )
  3. 收集静态文件

    ./manage.py collectstatic --noinput
  4. 在设置中指定自定义路径到您的图片目录

    DUMMY_THUMBNAILS_IMAGES_PATH = '/home/path/to/images/'

    这应该是在您的Django项目中的媒体目录下的一个目录。否则,Django会引发一个SuspiciousOperation异常。为了不为每个项目重复大量文件,建议您在Django项目的媒体目录中创建指向图像目录的符号链接。

    ln -s /home/path/to/images /home/repos/your-django-project/media

    如果您想使用包含的公有领域图像,请运行以下管理命令

    ./manage.py dummy_thumbnails_symlink_dummy_images

    并在设置中指定以下路径

    DUMMY_THUMBNAILS_IMAGES_PATH = os.path.join(MEDIA_ROOT, 'mixed')

用法

常见用法示例。

用占位图像替换损坏的图像

这就是全部内容 - 用占位图像替换损坏的图像。

支持的缩略图生成器

大多数流行的Django图像缩略图生成器(django-imagekitsorl-thumbnaileasy-thumbnails)都受到支持。如果您找不到您喜欢的缩略图生成器,请打开一个问题或考虑发起一个拉取请求。

django-imagekit

django-imagekit集成。

按以下方式修改您的设置

  1. imagekitdummy_thumbnailsdummy_thumbnails.contrib.thumbnailers.django_imagekit.generatorlibrary添加到INSTALLED_APPS

    INSTALLED_APPS = [
        # ...
        'imagekit',
        'dummy_thumbnails',
        'dummy_thumbnails.contrib.thumbnailers.django_imagekit.generatorlibrary',
        # ...
    ]
  2. 收集静态文件

    ./manage.py collectstatic --noinput
  3. 在设置中指定自定义路径到您的图片目录

    DUMMY_THUMBNAILS_IMAGES_PATH = os.path.join(MEDIA_ROOT, 'mixed')
  4. 如果您使用的是包含的公有领域图像,不要忘记创建一个符号链接

    ./manage.py dummy_thumbnails_symlink_dummy_images
  5. 现在以下命令将工作

    {% load imagekit %}
    
    {% thumbnail '640x480' 'None1' %}
    {% thumbnail '480x640' 'None2' %}
    {% thumbnail '200x200' 'None3' %}
sorl-thumbnail

sorl-thumbnail集成。

按以下方式修改您的设置

  1. sorl.thumbnaildummy_thumbnails添加到INSTALLED_APPS

    INSTALLED_APPS = [
        # ...
        'sorl.thumbnail',
        'dummy_thumbnails',
        # ...
    ]
  2. 将占位缩略图引擎设置为THUMBNAIL_ENGINE

    THUMBNAIL_ENGINE = 'dummy_thumbnails.contrib.thumbnailers.sorl_thumbnail.engines.dummy_engine.DummyThumbnailsEngine'
  3. 收集静态文件

    ./manage.py collectstatic --noinput
  4. 在设置中指定自定义路径到您的图片目录

    DUMMY_THUMBNAILS_IMAGES_PATH = os.path.join(MEDIA_ROOT, 'mixed')
  5. 如果您使用的是包含的公有领域图像,不要忘记创建一个符号链接

    ./manage.py dummy_thumbnails_symlink_dummy_images
  6. 现在以下命令将工作

    {% load thumbnail %}
    
    {% thumbnail 'None1' "640x480" crop="center" as im %}
        <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}" />
    {% endthumbnail %}
    
    {% thumbnail 'None2' "480x640" crop="center" as im %}
        <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}" />
    {% endthumbnail %}
    
    {% thumbnail 'None3' "200x200" crop="center" as im %}
        <img src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}" />
    {% endthumbnail %}
easy-thumbnails

easy-thumbnails集成。

按以下方式修改您的设置

  1. easy_thumbnailsdummy_thumbnails添加到INSTALLED_APPS

    INSTALLED_APPS = [
        # ...
        'easy_thumbnails',
        'dummy_thumbnails',
        # ...
    ]
  2. 将占位缩略图生成器添加到THUMBNAIL_SOURCE_GENERATORS

    THUMBNAIL_SOURCE_GENERATORS = (
        'dummy_thumbnails.contrib.thumbnailers.easy_thumbnails.source_generators.dummy_thumbnail',
    )
  3. 收集静态文件

    ./manage.py collectstatic --noinput
  4. 在设置中指定自定义路径到您的图片目录

    DUMMY_THUMBNAILS_IMAGES_PATH = os.path.join(MEDIA_ROOT, 'mixed')
  5. 如果您使用的是包含的公有领域图像,不要忘记创建一个符号链接

    ./manage.py dummy_thumbnails_symlink_dummy_images
  6. 现在以下命令将工作

    {% load thumbnail %}
    
    <img src="{% thumbnail 'None1' 640x480 crop %}" alt="" />
    <img src="{% thumbnail 'None2' 480x640 crop %}" alt="" />
    <img src="{% thumbnail 'None3' 200x200 crop %}" alt="" />

处理损坏或无效的占位图像

当然,拥有一个良好的占位图像集总是更好的。然而,可能由于某些原因,您的占位图像之一可能已损坏。

推荐的方法是使用管理命令dummy_thumbnails_verify_dummy_images,该命令已被编写以验证占位图像并识别可能的问题。它还允许您删除损坏/无效的占位图像。

要确认删除损坏/无效的占位图像,请输入

./manage.py dummy_thumbnails_verify_dummy_images

要删除损坏/无效的占位图像而不进行确认,请输入

./manage.py dummy_thumbnails_verify_dummy_images --noinput

要仅列出损坏/无效的占位图像而不删除,请输入

./manage.py dummy_thumbnails_verify_dummy_images --list

另一种避免失败的方法是在项目设置中将DUMMY_THUMBNAILS_VERIFY_IMAGES的值设置为True。请注意,这将减慢Django项目的启动时间,尽管不会减慢图像的进一步渲染。

从源导入图像

从支持封装的源导入图像。

安装

dummy_thumbnails.contrib.image_importers.feed添加到全局settings.py中的INSTALLED_APPS

INSTALLED_APPS = (
    # ...
    'dummy_thumbnails.contrib.image_importers.feed',
    # ...
)

用法

要从Flickr commercialphotos源导入50个占位图像,请输入

./manage.py dummy_thumbnails_import_from_feed

您可以提供自定义的源URL和要导入的占位图像数量。要从Flickr nationalgeographic组导入100个图像,请输入

./manage.py dummy_thumbnails_import_from_feed \
    "https://api.flickr.com/services/feeds/groups_pool.gne?id=36256495@N00" \
    --limit=100

配置

如您所见,语法允许从任何支持封装的源读取图片。在您的项目中,您可能希望使其对开发者来说更简单,这样他们就不必输入源URL。因此,引入了一个设置 DUMMY_THUMBNAILS_FEED_DEFAULT_FEED_URL。它默认为Flickr的商业照片组URL。

DUMMY_THUMBNAILS_FEED_DEFAULT_FEED_URL = "https://api.flickr.com/" \
                                         "services/feeds/groups_pool.gne" \
                                         "?id=36256495@N00"

演示

本地运行演示

为了能够快速评估django-dummy-thumbnails,创建了一个演示应用程序(带有快速安装器)(在Ubuntu/Debian上工作,可能也在其他Linux系统上工作,但无法保证)。按照以下说明,在一分钟内启动演示。

获取最新的 dummy_thumbnails_demo_installer.sh

wget -O - https://raw.github.com/barseghyanartur/django-dummy-thumbnails/stable/examples/dummy_thumbnails_demo_installer.sh | bash

打开您的浏览器并测试应用程序。

如果快速安装器对您不起作用,请参阅在示例项目中运行的手动步骤。

测试

只需输入

./runtests.py

或使用tox

tox

或使用tox检查特定环境

tox -e py37

或运行Django测试

./manage.py test dummy_thumbnails --settings=settings.testing

许可证

GPL-2.0-only OR LGPL-2.1-or-later

支持

对于任何问题,请通过作者部分提供的电子邮件与我联系。

作者

Artur Barseghyan <artur.barseghyan@gmail.com>

项目详情


下载文件

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

源分布

django-dummy-thumbnails-0.2.5.tar.gz (9.1 MB 查看散列值)

上传日期

构建分布

django_dummy_thumbnails-0.2.5-py2.py3-none-any.whl (9.2 MB 查看散列值)

上传日期 Python 2 Python 3

由以下支持

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