Работа с изображениями в Django

категория: Django
Много раз приходиться работать с ImageField - как возможны сайты без изображений, и тут я решил собрать все шаги работы с картинками. Так как я разрабатываю на локальном сервере, необходимым будет для текущего окружения установление графической библиотеки python - PIL. Итак, с этого и начнем. Установим зависимости сборки и установим PIL:
sudo apt-get build-dep python-imaging
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/
pip install PIL
Должно написать, что-то на подобие этого:
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.3 (default, Apr 10 2012, 22:21:37)
              [GCC 4.6.3]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
Если все получилось очень криво, то можно поставить Pillow:
pip install Pillow
Создаем поле для картинки в модели приложения, получиться как-то так:
image = models.ImageField(upload_to="images/", 
        verbose_name=u'Ваше фото', help_text='150x150px')
Регистрируем в admin.py, делаем синхронизацию syncdb и, если нужно, миграцию базы данных. В шаблоне просто выводим ее в нужном месте, модель моя "About":
<img src="{{ about.image.url }}">
Я написал все вкратце, нет смысла одно и тоже каждый раз расписывать, возникнут вопросы - спрашивайте.


blog comments powered by Disqus