Django — отличный фреймворк для создания сайтов. Одним из преимуществ Django является поддержка сторонних приложений, которые вы можете интегрировать в свой сайт, чтобы не писать заново велосипед. Например, для создания блога можно использовать Zinnia — приложение, реализующее практически все, что вам можно понадобится от блога на сайте.
Данная статья описывает создание блога, используя Django Zinnia, а в следующей мы добавим к нему мультиязычность.
Содержание
Подготовка виртуального окружения
Начнем с подготовки виртуального окружения командой mkvirtualenv blog.
Теперь все устанавливаемые python приложения будут установлены в виртуальном окружении, не засоряя систему.
Установка зависимостей Zinnia
Zinnia требует установки следующих зависимостей:
- Python >= 2.6.5
- Django >= 1.5
- PIL >= 1.1.6 or Pillow >= 2.0.0
- django-mptt >= 0.5.1 < 0.6
- django-tagging >= 0.3.1
- beautifulsoup4 >= 4.1.3
Добавим их в файл requirement.txt и установим командой
pip install -r requirement.txt
Содержимое файла requirement.txt
Django==1.5.1 PIL==1.1.7 beautifulsoup4==4.2.1 django-mptt==0.5.5 django-tagging==0.3.1
Установка Django Zinnia
Установить приложение Django Zinnia можно командой
pip install django-blog-zinnia
При установке Zinnia добавит также дополнительно пакеты
django-xmlrpc==0.1.5 pyparsing==1.5.7 pytz==2013b
Настройка Django проекта — добавление приложения Zinnia
Теперь нужно добавить Zinnia и другие необходимые приложения в наш проект.
Открываем settings.py и добавляем в INSTALLED_APPS
INSTALLED_APPS = ( 'django.contrib.auth', 'django.contrib.admin', 'django.contrib.sites', 'django.contrib.comments', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.contenttypes', 'django.contrib.staticfiles', 'tagging', 'mptt', 'zinnia', )
Также создадим или изменим раздел TEMPLATE_CONTEXT_PROCESSORS
TEMPLATE_CONTEXT_PROCESSORS = ( 'django.contrib.auth.context_processors.auth', 'django.core.context_processors.i18n', 'django.core.context_processors.request', 'django.core.context_processors.media', 'django.core.context_processors.static', 'zinnia.context_processors.version',) # Optional
Также, если это еще не сделано, добавьте настройки вашей базы данных.
На этом настройка проекта завершена. Для работы блога нужно также прописать URL
Настройка URL для блога
В корневом URL проекта нужно раскомментировать строки для работы админки и добавить две строки для работы блога:
url(r'^weblog/', include('zinnia.urls')), url(r'^comments/', include('django.contrib.comments.urls')),
Синхронизация базы
Настройки завершены. Для запуска сайта и осмотра того, что получилось, выполним создание таблиц в базе данных
python manage.py syncdb
Тестирование блога
Теперь можно запустить веб-сервер и проверить, что блог доступен и работает.
Для запуска выполняем команду
python manage.py runserver
и переходим по адресу http://127.0.0.1:8000/weblog/
При отправке комментариев Zinnia будет отсылать письмо автору комментария на указанный email. По-умолчанию Django использует localhost:25 в качестве параметров для SMTPсервера.
Если на компьютере на 25 порту не запущен SMTP, то при отправке комментария вы получите ошибку
error at /comments/post/ [Errno 111] Connection refused
Запустить SMTP сервер для тестирования вы можете командой
sudo python -m smtpd -n -c DebuggingServer localhost:25