Установка Django CMS 3 Beta 3 с помощью Django 1.6 на Ubuntu

Вступление

Поскольку версия Django CMS 3 вышла не так давно, она по-прежнему постоянно развивается. Последний доступный пакет (Beta 3) поставляется с обещанным надежным API.

Данная статья демонстрирует установку и запуск этой мощной и популярной системы управления контентом (CMS).  Кроме того, здесь можно найти советы по модернизации Django CMS 2.

Примечание: чтобы получить инструкции по установке стабильной версии Django CMS (сегодня это версия 2), прочтите статью «Установка и настройка Django CMS на сервер  Debian 7 и Ubuntu 13».

Django и Django CMS

Django

Django – это фреймворк для веб-разработки, основанный на языке программирования Python. Этот широкомасштабный проект упаковывает и отправляет огромнейшее количество инструментов и приложений для быстрого начала разработки.

Django CMS

Django CMS – удобная для пользователя система управления контентом и фреймворк, разработанные в Django. Данная система в полной мере использует расширенную функциональность Django и предоставляет подключаемый интерфейс разработки для создания веб-сайтов всех видов.

Этот зрелый продукт ориентирован на бизнес. На протяжении многих лет проект был сосредоточен на ключевых областях программирования, чтобы с помощью тщательно продуманных инструментов сделать жизнь разработчиков и системных  администраторов проще.

В своей третьей версии Django CMS стремится изменить стратегию и обеспечить существенно улучшенный интерфейс и впечатляющий набор функций.

Подготовка сервера Ubuntu

Поскольку Django CMS является проектом Python, необходимо правильно настроить систему, чтобы установленный сервер запускался и работал без сбоев и ошибок.
Чтобы подготовить Ubuntu VPS, прочтите статью «Настройка облачного сервера Ubuntu для работы веб-приложений Python».

Инструкции по установке (и обновлению) Django CMS приведены ниже.

Установка Django CMS 3 Beta 3

Виртуальная среда Python для Django CMS

Создайте виртуальную среду (если она не была создана ранее):

virtualenv django_env
cd         django_env

Или активируйте ее:

# Перейдите в каталог:
# cd [django_env] source bin/activate

Зависимости Django CMS

Поскольку версия Django CMS 3 еще не вышла, нужно установить приложение с ветки разработки Git-репозитория.

Запустите следующую команду, которая установит Django CMS 3 с помощью pip:

pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms

Затем установите любой необходимый драйвер базы данных, например

# PostgreSQL:
pip install psycopg2

Одна из важнейших зависимостей – библиотека Python Imaging Library (или PIL), которая используется Django CMS для обработки изображений (например, обрезки, изменения размера и т.д.).

Но вместо PIL иногда лучше использовать более удобное ответвление данной библиотеки под названием Pillow. Данный пакет совместим с setuptools и автоматически устраняет некоторые проблемы, связанные с использованием PIL.
Чтобы установить Pillow, запустите:

pip install pillow

Обновление Django CMS 2 до версии 3

Чтобы обновить Django CMS с помощью pip, запустите:

pip install --upgrade git+git://github.com/divio/django-cms.git@develop#egg=django_cms

Примечание: при обновлении необходимо учитывать, что не все пакеты имеют обратную совместимость, некоторые из них могут перестать работать. Перед обновлением CMS рекомендуется обратиться за дополнительной информацией к блогам и форумам, посвященным  Django CMS Version 3 Beta.

Настройка Django CMS 3

Начало работы с Django CMS – достаточно простой и понятный процесс; но прежде чем приступить к нему, нужно выполнить настройку системы. Данный раздел содержит советы касательно начальной загрузки конфигураций и приводит несколько примеров шаблонов файлов, которые можно использовать в работе.

Создание нового проекта

Как основанное на Django приложение, Django CMS поставляется с некоторыми инструментами автоматизации и управления.

Чтобы создать новый проект с помощью инструмента django-admin, запустите следующее:

# Синтаксис: python django-admin.py startproject [имя проекта] # Пример:
django-admin.py startproject dcms
# Затем перейдите в каталог приложения:
cd dcms

Конфигурирование settings.py

Как и при работе с Django, теперь необходимо внести некоторые изменения в главный конфигурационный файл settings.py.

Чтобы отредактировать данный файл с помощью nano, используйте команду:

# Синтаксис: nano [имя каталога проекта]/settings.py
# Пример:
nano dcms/settings.py

Скопируйте и вставьте (или отредактируйте) приведенный ниже блок кода в начало файла, чтобы внести переменную, указывающую на расположение основного каталога проекта:

# -*- coding: utf-8 -*-
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
PROJECT_PATH = BASE_DIR

Ниже в файле найдите столбец, начинающийся с INSTALLED_APPS.
Измените его, чтобы он имел следующий вид:

INSTALLED_APPS = (
# Additional plugin examples
# e.g.:
# Django CMS CK Editor:
# https://github.com/divio/djangocms-text-ckeditor
# 'djangocms_text_ckeditor',
# Django CMS:
'cms',
# Utilities:
'mptt',
'menus',
'south',
'sekizai',
# Other CMS modules:
'djangocms_admin_style',
# Django:
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sites',
)

Затем найдите MIDDLEWARE_CLASSES и отредактируйте его следующим образом:

MIDDLEWARE_CLASSES = (
# Django:
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.doc.XViewMiddleware',
# Django CMS:
'cms.middleware.page.CurrentPageMiddleware',
'cms.middleware.user.CurrentUserMiddleware',
'cms.middleware.toolbar.ToolbarMiddleware',
'cms.middleware.language.LanguageCookieMiddleware',
)

Следующее, что нужно сделать – внести настройки TEMPLATE_CONTEXT_PROCESSORS.
Внесите в файл следующий блок кода:

TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.i18n',
'django.core.context_processors.request',
'django.core.context_processors.media',
'django.core.context_processors.static',
'cms.context_processors.media',
'sekizai.context_processors.sekizai',
)

В завершение переместитесь в конец файла и найдите STATIC_URL. Удалите данный раздел и внесите следующий блок кода:

SITE_ID = 1
STATIC_ROOT = os.path.join(PROJECT_PATH, 'static')
STATIC_URL = '/static/'
MEDIA_ROOT = os.path.join(PROJECT_PATH, 'media')
MEDIA_URL = '/media/'
TEMPLATE_DIRS = (
# List of template directories.
# Example:
os.path.join(PROJECT_PATH, 'templates'),
)
CMS_TEMPLATES = (
# List of templates.
# Example:
('template_1.html', 'Template One'),
)
LANGUAGES = (
# List of languages.
# Example:
('en-us', 'English'),
)

Сохраните внесенные изменения и выйдите из файла, нажав CTRL+X и Y для подтверждения.

Конфигурирование urls.py

Теперь необходимо установить некоторые URL. Для этого отредактируйте файл urls.py. Чтобы отредактировать данный файл в nano, запустите следующее:

# Синтаксис: nano [имя каталога проекта]/urls.py
# Пример:
nano dcms/urls.py

Замените содержимое файла приведенными ниже конфигурациями:

# Django CMS 2:
# from django.conf.urls.defaults import *
# Django CMS 3:
from django.conf.urls import patterns, include, url
from django.conf.urls.i18n import i18n_patterns
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = i18n_patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^', include('cms.urls')),
)
if settings.DEBUG:
urlpatterns += patterns('',
url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
{'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns

Сохраните изменения и выйдите из файла, нажав CTRL+X и Y для подтверждения.

Настройка шаблонов

Перед созданием базы данных и тестированием инсталляции (или ее обновления) необходимо разработать некоторые шаблоны.

Примечание: для начала определите шаблоны в файле settings.py, а затем создайте их соответствующим образом.

Чтобы создать каталоги и файлы шаблонов, запустите следующее:

mkdir templates
touch templates/base.html
touch templates/template_1.html

Отредактируйте templates/base.html с помощью nano:

nano templates/base.html

Внесите следующее:

{% load cms_tags sekizai_tags %}
<html>
<head>
{% render_block "css" %}
</head>
<body>
{% cms_toolbar %}
{% placeholder base_content %}
{% block base_content %}{% endblock %}
{% render_block "js" %}
</body>
</html>

Сохраните изменения и выйдите из файла, нажав CTRL+X и Y для подтверждения.

Отредактируйте templates/template_1.html с помощью nano:

nano templates/template_1.html

Внесите следующее:

{% extends "base.html" %}
{% load cms_tags %}
{% block base_content %}
{% placeholder template_1_content %}
{% endblock %}

Сохраните изменения и выйдите из файла, нажав CTRL+X и Y для подтверждения.

База данных и миграции

Чтобы инициировать (или создать) базу данных для нового проекта, выполните следующие команды:

python manage.py syncdb --all
python manage.py migrate --fake

Затем выполните проверку целостности компонентов:

python manage.py cms check
# OVERALL RESULTS
# ===============
# 1 checks skipped!
# 8 checks successful!
# Installation okay

Примечание: по мере необходимости для обновления запустите миграции, например:

python manage.py syncdb
python manage.py migrate
# Для миграции схемы:
python manage.py schemamigration dcms --auto
# ! Не забудьте заменить имя «dcms» именем своего проекта.

Запуск Django CMS

Чтобы увидеть Django CMS в действии, используйте тестовый сервер.
Чтобы запустить приложение, введите:

python manage.py runserver 0.0.0.0:8000

Затем посетите:

  • Django CMS Home:
    http://[IP сервера]:8000/en-us
  • Django CMS Admin:
    http://[IP сервера]:8000/en-us/admin

Подготовка к производству

Завершив проект Django CMS и протестировав его, не следует полагаться на тестовый сервер, поставляемый вместе с приложением.

Для развертывания необходим полноценный сервер веб-приложений (например, Unicorn), желательно на инвертированном прокси-сервере, который будет выполнять первичную обработку запросов и распределять статические файлы [например, изображения].

Чтобы получить инструкции по подготовке к процессу производства, читайте одноименный раздел статьи «Настройка облачного сервера Ubuntu для работы веб-приложений Python».

Конспект команд

Ниже приведен конспект выполненных действий и использованных команд.

# Подготовьте систему и установите инструменты Python:
aptitude    update
aptitude -y upgrade
aptitude install -y build-essential
aptitude install -y cvs subversion git-core mercurial
aptitude install python-setuptools python-dev python2.7-dev python-software-properties libpq-dev
aptitude install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
export PATH="/usr/local/bin:$PATH"
pip install virtualenv
# Создайте виртуальную среду:
virtualenv django_env
cd django_env
source bin/activate
pip install git+git://github.com/divio/django-cms.git@develop#egg=django_cms
pip install psycopg2
pip install pillow
# Создайте проект Django CMS:
django-admin.py startproject dcms
cd dcms

Tags: , , , , , , , , ,

Добавить комментарий