跳转到主要内容

一个Django模板标签库,允许下载外部图像,将其存储在本地,并将本地存储的图像的本地路径返回到所需的上下文变量

项目描述

直接从模板获取外部图像。

一个Django模板标签库,允许下载外部图像,将其存储在本地,并将本地存储的图像的本地路径返回到所需的上下文变量,同时还包括获取的图像的 widthheight 属性。根据设置的时间在本地缓存获取的图像。

例如,您可以使用此应用程序来解决混合内容(从HTTP和HTTPS源加载的资产)显示的问题。

先决条件

  • Django 1.8, 1.9, 1.10

  • Python >=2.7, >=3.4

安装

  1. 安装 django-eximagination

PyPI上的最新稳定版本

pip install django-eximagination

GitHub上的最新稳定版本

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

  1. eximagination 添加到 INSTALLED_APPS

INSTALLED_APPS = (
    # ...
    'eximagination',
    # ...
)
  1. 配置

默认情况下,django-eximagination 期望您的文件存储在 /media/external_images 目录中。如果位置不同,请在Django设置中重新定义目录,确保路径可写,并且www-data(或适用者)有写入权限。

import os

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
MEDIA_ROOT = os.path.join(BASE_DIR, '..', '..', 'media')
EXIMAGINATION_MEDIA_ROOT = os.path.join(MEDIA_ROOT, 'external_images')
EXIMAGINATION_MEDIA_URL = '/media/external_images'
EXIMAGINATION_MEDIA_RELATIVE_ROOT = 'external_images/'
# After 30 days we re-fetch the file anyway.
EXIMAGINATION_EXPIRATION_INTERVAL = 2592000

使用示例(在Django模板中)

请参阅示例目录获取工作代码示例。

示例 #1

{% load eximaginate %}

<img src="{{ MEDIA_URL }}{% eximaginate 'http://www.google.com/intl/en/images/logo.gif' %}">

示例 #2

{% load eximaginate thumbnail %}

{% eximaginate 'http://www.google.com/intl/en/images/logo.gif' as original %}

<img src="{% thumbnail original 100x100 %}">

在两种情况下,都增加了两个额外的上下文变量

  • ei_width - 图像宽度

  • ei_height - 图像高度

测试

只需键入

./runtests.py

或使用 tox

tox

或使用 tox 检查特定环境

tox -e py35

或运行 Django 测试

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

许可证

GPL 2.0/LGPL 2.1

支持

如有任何问题,请联系作者部分中提供的电子邮件或在 BitBucket/GitHub 上打开一个问题。

作者

Artur Barseghyan <artur.barseghyan@gmail.com>

项目详情


下载文件

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

源分布

django-eximagination-0.8.3.tar.gz (7.6 kB 查看哈希值)

上传时间

构建分布

django_eximagination-0.8.3-py2.py3-none-any.whl (13.7 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者