A Django template tag library which allows to download external images, store them locally and return the local path to locally stored image to a desired context variable
Project description
Fetch external images directly from templates.
A Django template tag library which allows to download external images, store them locally and return the local path to locally stored image to a desired context variable, along with width and height attributes of the image fetched. Caches the fetched images locally for the given time (set in settings).
You could, for example, use this app to solve the problems with displaying of a mixed content (assets loaded from HTTP and HTTPS sources).
Prerequisites
Django 1.8, 1.9, 1.10
Python >=2.7, >=3.4
Installation
Install django-eximagination
Latest stable version on PyPI:
pip install django-eximagination
Latest stable version from GitHub:
pip install https://github.com/barseghyanartur/django-eximagination/archive/stable.tar.gz
Add eximagination to INSTALLED_APPS.
INSTALLED_APPS = (
# ...
'eximagination',
# ...
)
Configure
By default, django-eximagination expects your files to be stored in /media/external_images directory. If location varies, redefine the directories in your Django settings, make sure the path is writable and that www-data (or whatever is applicable) has rights to write into it.
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
Usage example (in a Django template)
See the example directory for working code example.
Example #1:
{% load eximaginate %}
<img src="{{ MEDIA_URL }}{% eximaginate 'http://www.google.com/intl/en/images/logo.gif' %}">
Example #2:
{% load eximaginate thumbnail %}
{% eximaginate 'http://www.google.com/intl/en/images/logo.gif' as original %}
<img src="{% thumbnail original 100x100 %}">
In both cases there are two additional context variables added:
ei_width - Width of the image
ei_height - Height of the image
Testing
Simply type:
./runtests.py
or use tox:
tox
or use tox to check specific env:
tox -e py35
or run Django tests:
./manage.py test eximagination --settings=settings.testing
License
GPL 2.0/LGPL 2.1
Support
For any issues contact me at the e-mail given in the Author section or open an issue on BitBucket/GitHub.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file django-eximagination-0.8.1.tar.gz
.
File metadata
- Download URL: django-eximagination-0.8.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af17bd6f2fd483076dbf381c968bf7066861b6454e9ac09d2fad7482a00f04dd |
|
MD5 | dbcc8acdc36e27e6945040e4eecdbbff |
|
BLAKE2b-256 | 944c071b7afecab3d35147bafc1af2873e330faee5664eb5c304573f1154247a |
File details
Details for the file django_eximagination-0.8.1-py2.py3-none-any.whl
.
File metadata
- Download URL: django_eximagination-0.8.1-py2.py3-none-any.whl
- Upload date:
- Size: 13.0 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | af70c42c07ee1f6c87dfc73bfb8e52fa069b59217582674884557857d34f4583 |
|
MD5 | 24f8aa65a19f1a82452535f96a157754 |
|
BLAKE2b-256 | 63e730c05ac6d4ea070c6949cbf7e4aebfa218207d8ba1953197811a9a4ab5b7 |