Салют. Немного уйдем от тематики блога. И обратим свой взор в сторону DJANGO. Конкретно опишу проблему, с которой столкнулся. При разработке приложений Django использую стандартный джанговский dev-сервер. И вот стало необходимо отображать изображения на сайте. Но не тут то было. В итоге решение нашел на djbook.ru.
Как настроить выдачу файлов для dev-сервера
Как упоминалось выше, лучше отдавать файлы через специальный сервер, например Nginx или Apache. Но при разработке это лишние проблемы. Можно легко настроить выдачу файлов средствами Django. Предполагается что при разработке
DEBUG
всегда True
, а на сервере - False
. Добавим в urls.py:from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) urlpatterns += staticfiles_urlpatterns()
Настройка
В файл settings.py прописываем следующее:MEDIA_ROOT = '/path/to/media' MEDIA_URL = '/media/' STATIC_ROOT = '/path/to/static/' STATIC_URL = '/static/' STATICFILES_FINDERS = ( 'django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder', )Теперь
Как использовать STATIC файлы в шаблонах
{% load staticfiles %}
Как использовать MEDIA файлы в шаблоне
Это на много проще. Объект FieldFile, возвращаемый ImageField и FileField, содержит path и url:Все. Пользуемся. В следующей статье покажу как это едят.