Python DjangoDjango (Джанго) — свободный фреймворк для веб-приложений на языке Python. Изначально проект был создан для управления новостными сайтами LJWorld.com, lawrence.com и KUsports.com, принадлежащими компании The World Company (Лоуренс, Канзас (en), США).
Сайт на Django строится из одного или нескольких приложений, которые рекомендуется делать отчуждаемыми и подключаемыми. Это одно из существенных архитектурных отличий этого фреймворка от некоторых других (например Ruby on Rails).
Также в отличие от других фреймворков обработчики URL в Django конфигурируются явно при помощи регулярных выражений, а не выводятся автоматически из структуры моделей контроллеров.
Для работы с базой данных Django использует собственный ORM, в котором модель данных описывается классами Python, и по ней генерируется схема базы данных.
На базе Django разработан ряд готовых решений со свободной лицензией, среди которых интернет-магазины, системы управления содержимым, а также более узконаправленные проекты.
Рассмотрим установку Django приложения на примере django CMS.
Подготовка Веб-сервера и базы данных
Первое, что нам необходимо сделать - это получить доступ к SSH:
- Панель управления -> SSH -> Устаналиваем пароль и флаг Вкл. (либо ограничиваем по IP)
Далее, создаем базу для нашего приложения:
- Панель управления -> Базы данных -> MySQL или PgSQL на выбор
- Запоминаем название базы, пароль, тип, и адрес сервера базы данных.
Создаем виртуальный сервер:
- Панель управления -> Веб-серверы -> Создать новый:
-
- Приложения на сервере ->Python (mod_wsgi)
- Корневая папка -> django_data
- Имя Сервера -> mydomain.ru
- Включить акселератор отдачи статического контента -> Вкл.
- Индексные Файлы -> index.wsgi
- .htaccess -> Вкл.
- Сохранить
Установка приложения
Пока применяются настройки для нового сервера (это занимает не более получаса, состояние можно посмотреть Панель управления -> Главная), создадим приложение на сервере.
Используя любой SSH клиент, заходим на сервер:
- ssh my_admin_login@mydomain.ru
Где,
- my_admin_login - Ваш логин администратора
- mydomain.ru - Ваш домен либо технический адрес сервера
После ввода пароля (его мы задали в самом начале), выполняем следующую команду:
- #django-admin.py startproject django_app
Где,
- django_app - директория Django приложения
Копируем дистрибутив django CMS:
- #cp -R /usr/local/lib/python2.6/site-packages/django_cms-2.0.2-py2.6.egg/* ~/django_app
Либо скачиваем последню версию и распаковываем содержимое в каталог ~/django_app
Копируем пример конфигурации CMS из дистрибутива:
- #cp -R ~/django_app/example/* ~/django_app/
Настраиваем конфигурацию, путем редактирования файла ~/django_app/settings.py:
- DATABASE_ENGINE = тип базы данных: mysql либо postgresql
- DATABASE_NAME = Название базы
- DATABASE_NAME = Название базы
- DATABASE_USER = Пароль, указанный при создании базы
- DATABASE_HOST = Адрес сервера базы данных
- MEDIA_ROOT = os.path.join(PROJECT_DIR, 'cms/media/')
ADMIN_MEDIA_PREFIX = '/media_admin/'
В INSTALLED_APP комментируем строчку:
Должно получиться так:
Сохраняем файл и из командной строки выполняем команду:
- #python ~/django_app/manage.py syncdb
Отвечаем на вопросы:
- You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
- Username (Leave blank to use 'example'): Логин администратора
- E-mail address: email администратора
- Password: Пароль администратора
- Password (again): Подтверждение пароля
К этому моменту настройки веб-сервера уже применились и в домашней директории создался каталог веб-сервера django_data.
Создаем обработчик ~/django_data/index.wsgi следующего содержания:
import os, sys root_path = os.path.abspath(os.path.split(__file__)[0])
sys.path.append(root_path+'/..') sys.path.append(root_path) sys.path.append(root_path+'/../django_app/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_app.settings'
import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()
Делаем обработчик исполняемым:
- #chmod 500 ~/django_data/index.wsgi
Сообщяем веб-серверу, что все запросы должны обрабатываться django при помощи ~/django_data/.htaccess
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.wsgi/$1 [L,QSA]
Копируем медиа контент для панели администратора:
- #cp -R /usr/local/lib/python2.6/site-packages/django/contrib/admin/media ~/django_data/media_admin
Все, CMS установлена, заходим по адресу, указанному в имени сервера и авторизуемся с логином и паролем администратора.
Установка дополнительных модулей
Если Вам потребуется установка дополнительных модулей python - обращайтесь в Поддержку Онлайн из Вашей Панели управления, и мы с радостью это сделаем.
|