Джанго хостинг. Развертывание Django проекта на виртуальном хостинге
  • Главная

ep.io — хостинг для python web-приложений. Джанго хостинг


ep.io — хостинг для python web-приложений / Хабр

Сразу хочу сказать что не имею никакого отношения к компании, которая создала этот сервис.
Вступление
До того, как я опробовал хостинг от ep.io, я несколько раз встречал упоминание о нем в интернете, в основном на буржуйских сайтах. Отзывы были только положительные, гики радовались и хвалили сервис. В итоге я все-таки решил его попробовать и недолгая переписка с поддержкой сервиса дала свои результаты — мне выдали инвайт.
Для чего?
Как написано в документации хостинг предназначен для Django, Pylons, Pyramid, Flask, Trac или любых других WSGI-совместимых приложений. Я пока успел попробовать побаловаться с небольшими приложениями на фреймворке bottle.
Регистрация и начало работы
Простая регистрация и перед нами открывается панель управления хостингом, в которой есть возможность редактировать свои данные, такие как пароль, SSH ключи и платежную информацию. Так же нам становится доступна страница со списком приложений, где можно увидеть статус всех своих приложений, а так же добавить новое: По сути каждое приложение это отдельный сабдомен в системе вида имя_приложения.ep.io, который работает в собственной виртуальной среде. Но вы так же можете привязать собственный домен.

Перед загрузкой проекта необходимо создать файл настроек в корне Вашего проекта. Для этого нужно создать файл epio.ini и наполнить так, как Вам нужно. Синтаксис подробно расписан в официальной документации.

Удобной фишкой сервиса является возможность предоставления доступа к отдельному приложения для третьих лиц:

Сам процесс загрузки приложения на сервер очень понятно изложен в документации, поэтому я не буду это пересказывать. Скажу только что я не сразу понял, как правильно заливать в определенное приложение свои файлы. Оказалось что нужно просто добавить ключ -a с именем желаемого приложения в качестве параметра. То есть, для загрузки файлов в приложение «inlanger» нужно написать команду «epio upload -a inlanger». Вот пример простейшего приложения, которое работает и доступно по адресу inlanger.ep.io:

Файл server.py

# -*- coding: utf-8 -*- from bottle import * app = Bottle() @app.route('/') def home(): return '<h2>Hello habr!</h2><br /><a href="/test">Go test URL</a>' @app.route('/test') def test(): return '<h2>This is a test URL!</h2>' run(app, server='gunicorn')Не забудьте залить файл bottle.py в корень проекта!

Файл epio.ini

[wsgi] entrypoint = server:home Для отладки предоставляется последние 500 строчек console output, который доступен для каждого отдельного приложения.
Файл epio.ini
Этот файл по сути и есть все настройки Вашего проекта. В нем вы выставляете настройки cron, необходимые библиотеки для работы Вашего приложения, пути к статике а так же многое другое. Вы можете даже выбрать нужную версию Python.
Хранение данных
До недавнего времени сервис не предоставлял доступ к файловой системе. Сейчас сервис позволяет писать в отдельную папку, путь к которой можно получить из переменной окружения EPIO_DATA_DIRECTORY. В качестве БД можно использовать Redis или PostgreSQL(появился недавно). Еще одно важное НО — если вы хотите отправлять email из своего приложения — Вам необходимо будет пользоваться сторонними сервисами, так как эта возможность у сервиса отключена.
Цены
Для любопытных существуют бесплатные квоты. Если Вам их не хватает то можете их увеличить. Увеличить можно количество инстансов, количество месячного трафика и расширить место на винчестере. Цены не то чтобы низкие, но адекватные.
Заключение
Для тех, кому хочется больше узнать о технической стороне этого сервиса и о том в какой среде будет находится Ваше приложение, могу посоветовать почитать официальную документацию. От себя могу сказать что сервис очень молодой, но активно набирает поклонников на западе. Хорошей новостью является то, что пока доступны бесплатные квоты, которые вполне могут покрыть работу простого приложения, которое поможет оценить возможности платформы. Для некоторых простых приложений, таких как домашняя страница, большего и не надо. Я лично использую эту площадку как некий playground для небольших идей, которые часто всплывают в голове. Мне удалось перекинуться парой слов на UAPycon с Andrew Godwin, одним из создателей сервиса, и из этого было понятно что хостинг и дальше будет разиваться, что видно даже за последний месяц. Так как я пользуюсь сервисом дотстаточно недолго то буду рад другим отзывам в комментариях о платформе.

habr.com

Развертывание Django проекта на виртуальном хостинге — m05quit0

Недавно перенес оба-два свои блога на WordPress с Петерхоста на Locum. Пока полет нормальный — Locum дешевле, удобней и стабильнее. Также я рекомендовал этот хостинг заказчику для размещения небольшого Django сайта, который я сейчас разрабатываю. О том, как развернуть Django 1.4 проект на виртуальном хостинге Locum.ru, и пойдет речь в этом посте.

Итак, в панели управления создаем новый проект, например, mysite.

Заходим на сервер по SSH и скачиваем последний virtualenv:

wget https://raw.github.com/pypa/virtualenv/master/virtualenv.py

Создаем виртуальное Python окружение:

python virtualenv.py ~/env/mysite

Флаг --no-site-packages указывать не нужно — теперь это поведение по умолчанию.

Активируем окружение:

source ~/env/mysite/bin/activate

На локальной машине создаем и редактируем файл зависимостей проекта:

pip freeze > req.txt

Заливаем файл на сервер и устанавливаем все необходимые пакеты:

pip install -r req.txt

С подготовкой окружения закончили, переходим непосредственно к работе с проектом. Все проекты находятся в директории ~/projects, в том числе и наш mysite. Locum создает дефолтный проект автоматом, он не нужен — чистим директории apps, media и static. Заливаем проект и дамп базы. Удаляем wsgi.py файл, использовавшийся на локальной машине, правим файл setting.py. Правим django.wsgi файл, созданный хостингом:

#!/usr/bin/python # -*- coding: utf-8 -*- activate_this = '/home/hosting_login/env/mysite/bin/activate_this.py' execfile(activate_this, dict(__file__=activate_this)) import os import sys sys.path.insert(0, '/home/hosting_login/env/mysite/lib/python2.6/site-packages') sys.path.insert(0, '/home/hosting_login/projects/mysite/apps') os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler()

Собираем статику:

python manage.py collectstatic

Перезапускаем приложение кнопкой в панели хостинга или изменением времени редактирования файла django.wsgi

touch django.wsgi

m05quit0.ru

Создание и перенос проекта на Django — КОМТЕТ — хостинг

Фреймворк Django поддерживается на тарифах «Профи», «Плюс», «VIP» виртуального хостинга. Рекомендуется подключение SSH, но развернуть проект можно и без полного SSH-доступа.

Создание проекта Django с SSH

Обязателен полный доступ SSH.
  1. По ssh заходим на свою площадку нашего хостинга.
  2. Перемещаемся в каталог /private
  3. Приложения python лучше разворачивать в каталог private, так как в случае установки в каталог домена злоумышленники могут легко получить доступ к персональной информации, например, узнать пароль к базе данных.

  4. В данном каталоге выполняем следующие команды:
  • В каталоге /httpdocs создаем два файла следующего вида:
      • django.fcgi:#!/opt/komtet/python27/django/1.2/bin/python import sys, os os.environ['PYTHON_EGG_CACHE'] = "/var/www/ЛОГИН_ПОЛЬЗОВАТЕЛЯ/data/private/.python-eggs" # Add a custom Python path. sys.path.insert(0, "/var/www/ЛОГИН_ПОЛЬЗОВАТЕЛЯ/data/private") sys.path.insert(0, "/var/www/ЛОГИН_ПОЛЬЗОВАТЕЛЯ/data/private/ИМЯ_ПРОЕКТА") # Switch to the directory of your project. (Optional.) os.chdir("/var/www/ЛОГИН_ПОЛЬЗОВАТЕЛЯ/data/private/ИМЯ_ПРОЕКТА") # Set the DJANGO_SETTINGS_MODULE environment variable. os.environ['DJANGO_SETTINGS_MODULE'] = "settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")
  • Устанавливаем права доступа:
  • Готово.
  • Перенос проекта Django без SSH

    Необязателен полный доступ ssh, достаточно chrooted ssh (ограниченный доступ).
    1. Закачиваем готовый проект django на вашу площадку в папку /private
    2. Закачиваем дамп БД с помощью консоли или phpMyAdmin (возможно так же использование СУБД PostgreSQL).
    3. Создаем файлы .htaccess и django.fcgi согласно пункту 4 раздела «Создание проекта Django с SSH», указывая путь к вашему проекту. ВАЖНО: если проект был создан на версии python не 2.7, то строку файла django.fcgi#!/opt/komtet/python27/django/1.2/bin/python нужно заменить на строку соответствующей требуемой версии интерпретатора, см. Пути к интерпретаторам;
    4. Редактируем файлы конфигурации фреймворка на правильность путей и подключения к БД.
    5. Проверяем чтобы каталог media находился в рабочей директории /httpdocs а не в /private
    6. Готово.

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

    www.komtet.ru

    Как установить django на хостинг ?

    Эта инструкция позволит вам установить Django Framework. Вам понадобится любой клиент, который поддерживает протокол SSH (например, putty).

    1) Создаем директорию private в домашнем каталоге:

    cd ~ && mkdir private

    2) Прописываем параметры окружения:

    export PYTHONPATH="$HOME/private:$HOME/private/lib/python2.7/site-packages"

    3) Добавляем данную строку (export) в файл .bashrc который размещен в нашем домашнем каталоге:

    echo "export PYTHONPATH=\"$HOME/private:$HOME/private/lib/python2.7/site-packages\"" >> $HOME/.bashrc

    4) Скопируем компоненты python2.7 в папку вновь созданную private:

    mkdir -p ~/private/lib64/python2.7/ && cp -r /opt/rh/python27/root/usr/lib/python2.7/site-packages ~/private/lib64/python2.7/

    В каталоге /opt/rh/python27 лежит необходимое окружение, которое необходимо экспортировать:

    export PATH=/opt/rh/python27/root/usr/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/opt/rh/python27/root/usr/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} export MANPATH=/opt/rh/python27/root/usr/share/man:${MANPATH} # For systemtap export XDG_DATA_DIRS=/opt/rh/python27/root/usr/share${XDG_DATA_DIRS:+:${XDG_DATA_DIRS}} # For pkg-config export PKG_CONFIG_PATH=/opt/rh/python27/root/usr/lib64/pkgconfig${PKG_CONFIG_PATH:+:${PKG_CONFIG_PATH}}

    5) Установка пакета django: Переходим в директорию private:

    cd ~/private/

    Загружаем пакет с Django необходимой версии:  

    wget https://www.djangoproject.com/m/releases/1.8/Django-1.8.8.tar.gz

    Извлекаем файлы из архива:

    tar -xzf Django-1.8.8.tar.gz

    Меняем имя директории с файлами:

    mv Django-1.8.8 django

    Переходим в директорию с django:

    cd django

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

    python2.7 setup.py install --prefix=$HOME/private

    6) Дополнительная настройка окружения для удобства:

    ln -s /usr/bin/python2.7 $HOME/private/bin/python

    установка PATH к дополнительной директории bin

    export PATH="$HOME/private/bin:$PATH"

    После чего добавляем export PATH в файл .bashrc:

    echo "export PATH=\"$HOME/private/bin:$PATH\"" >> $HOME/.bashrc

    7) Установка пакета Flup, необходимого для функционирования fcgi. Процедура установки аналогична Django:

    cd ~/private && wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz tar xzvf flup-1.0.2.tar.gz && mv flup-1.0.2 flup && cd flup python2.7 setup.py install --prefix=$HOME/private

    8) Далее необходимо создать fcgi-скрипт и поместить его в директорию www/site.com/cgi-bin/ (где site.com - адрес вашего сайта) : Для примера название файла будет site.fcgi с содержанием:

    #!/usr/bin/python2.7 import sys, os sys.path.append('/var/www/vhXXXXX/data/private') sys.path.append('/var/www/vhXXXXX/data/private/lib/python2.7/site-packages') sys.path.append("/var/www/vhXXXXX/data/private/django") sys.path.append("/var/www/vhXXXXX/data/private/flup") sys.path.append("/var/www/vhXXXXX/data/www/site.com/djeuro") # more path stuff os.environ['DJANGO_SETTINGS_MODULE'] = "djeuro.settings" from django.core.servers.fastcgi import runfastcgi runfastcgi(method="threaded", daemonize="false")

    где vhXXXXX — название вашей услуги виртуального хостинга

    Установим права на файл site.fcgi:  

    chmod 755 site.fcgi

    Создаем файл .htaccess в корне сайта с содержимым:

    AddHandler fcgid-script .fcgi Options +FollowSymLinks RewriteEngine On RewriteBase / RewriteRule ^(media/.*)$ - [L] RewriteRule ^(adminmedia/.*)$ - [L] RewriteCond %{REQUEST_URI} !(cgi-bin/site.fcgi) RewriteRule ^(.*)$ cgi-bin/site.fcgi/$1 [L]

    9) Создание проекта Django: Переходим в директорию с сайтом:  

    cd $HOME/www/site.com/

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

    django-admin startproject djeuro django-admin syncdb

    Установка Django успешно завершена, на сайте site.com должна отобразиться страница приветствия Django.

    eurobyte.ru

    Заказать хостинг для Django проектов (через фриланс)

    На Юду можно заказать хостинг для Django. В базе сайта зарегистрированы лучшие программисты из Москвы и Московской области. Вы можете связаться с любым из наших специалистов и заказать у него проект по доступной цене.

    Преимущества заказа услуг профессионалов

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

    Мастера, зарегистрированные на Юду, профессионально подходят к каждому заданию. Они уже давно занимаются разработкой VDS/VPS хостингов для Django. Сделав заказ на сайте Юду, вы убедитесь, что наши исполнители делают свою работу быстро и качественно.

    Если нужно срочно установить сервер для Django, на сайте Юду можно найти специалиста, который на данный момент свободен. Прежде чем оформить заказ, согласуйте с исполнителем Юду сроки разработки Django хостинга.

    Сколько времени займет выполнение заказа?

    Исполнители сайта Юду проводят установку серверов для Django в самые короткие сроки. У нас вы найдете мастеров, которые справятся с заданием меньше, чем за неделю. Большой опыт в сфере программирования и современное оборудование позволяет нашим специалистам работать максимально быстро.

    Длительность разработки сервера для Django может увеличиться, если:

    • исполнитель не готов сразу приступить к работе
    • в процессе установки возникли трудности

    Опытные мастера, зарегистрированные на сайте Юду, заранее оговаривают сроки, за которые они успеют завершить разработку сервера для Django.

    Как проходит установка?

    Программисты, которые зарегистрированы на сайте Юду, выполняют ряд работ по созданию серверов для Django CMS Framework. Сюда входит:

    • создание интерфейса панели управления
    • разработка структуры проекта
    • установка MySQL
    • настройка базы данных
    • редактирование временной зоны
    • регистрация пользователя

    Наши исполнители, специализирующиеся на платформе Django, берутся за проекты любой сложности.

    Сколько стоят услуги специалистов Юду?

    Разработка сервера для Django CMS Framework может оцениваться по-разному. На стоимость обычно влияют следующие факторы:

    • регион (цены в Москве и Московской области различаются)
    • рейтинг программиста и его профессиональные качества
    • сложности в установке сервера для Django
    • характеристики сервера

    Подробнее о тарифах специалистов сайта Юду можно узнать из их прайс-листов. Там указано, сколько будет стоить хостинг для Django, а также цены на дополнительные услуги: помощь интернет-провайдера в решении технических вопросов, создание базы данных, регистрация домена и т. д.

    На сайте Юду можно найти мастера, который занимается установкой серверов для Django по доступной стоимости. Также многие частные специалисты и сотрудники компаний предоставляют своим клиентам скидки.

    Как сделать заказ на Юду?

    Если вам нужно установить сервис для Django, закажите услуги исполнителя сайта Юду с помощью заявки. Опубликуйте задание для наших специалистов. Укажите в нем:

    • результат, который вы хотите получить
    • точные или приблизительные сроки работы
    • приемлемую цену на хостинг, разрабатываемый для Django
    • ваш регион (Москва или Подмосковье)

    После публикации заявки вам напишут мастера, зарегистрированные на сайте Юду. Вы сможете заказать хостинг для Django у опытного исполнителя, чьи тарифы и квалификация вас устроят.

    freelance.youdo.com

    Помощь: Хостинг: Виртуальные серверы: Python Django

    Django (Джанго) — свободный фреймворк для веб-приложений на языке 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, sysroot_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.wsgiapplication = 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 - обращайтесь в Поддержку Онлайн из Вашей Панели управления, и мы с радостью это сделаем.

    www.valuehost.ru

    общие вопросы — КОМТЕТ — хостинг

    Вы можете посмотреть предыдущие релизы здесь: Django 1.0

    Почему этот проект существует?

    Django появился из-за практической необходимости: World Online, изданию, ориентированному на веб-публикации, требовались Web-приложения для веб-публикаций. В быстром темпе мира новостей, World Online зачастую имеет лишь несколько часов, чтобы с помощью комплексного веб-приложения реализовать свои идеи в жизнь.

    В то же самое время Web-разработчики последовательно становились перфекционистами, когда речь шла о практиках Web-развития.

    Осенью 2003, интернет-разработчики (Adrian Holovaty и Simon Willison) забросили PHP и начали использовать Python для разработки веб-сайтов. Поскольку они создавали интерактивные сайты с высокой посещаемостью, такие как Lawrence.com, они начали разрабатывать фреймворк для Web-разработок, который позволил бы им сделать Web-приложения  всё быстрее и быстрее. В течение более чем двух лет они постоянно улучшали этот фреймворк, добавляя различные усовершенствования.

    Летом 2005-го года, World Online приняло решение открыть исходный код получившегося продукта - фреймворка Django. Невозможно было бы создать Django без целого ряда продуктов с открытым исходным кодом – Apache, Python, и PostgreSQL и мы очень рады, что сможем быть полезными сообществу разработчиков ПО с открытым исходным кодом.

    Что означает “Django”, и как его произносить?

    Django назван в честь Django Reinhardt, цыганского джаз-гитариста (с 1930-х до ранних 1950-х). В наши дни он признан одним из лучших гитаристов всех времен.

    Послушайте его музыку. Вам понравится.

    Django произносится как [ЖЭНГ-Оу] аналогично [ФЭНГ-Оу]. “D” не произносится.

    Мы также записали аудио клип произношения.

    Устойчив ли Django?

    Да. World Online использовал Django более трех лет. Сайты, созданные на Django, выдержали нагрузку в один миллион кликов в час и большое количество DoS-атак. Да, он весьма устойчив.

    Масштабируется ли Django?

    Да. По сравнению со стоимостью временем на разработку, аппаратные средства дешевы, поэтому Django разработан для использования любого количества аппаратных средств.

    Django использует архитектуру “shared-nothing”, это означает, что вы на любом уровне можете добавить такие аппаратные средства как: серверы баз данных, серверы кэширования или серверы Web-приложений.

    Фреймворк отделяет такие компоненты, как слой доступа к данным и логику приложения. И он поставляется с простым, но мощным cache framework.

    Кто за этим стоит?

    Изначально Django был разработан в Web-отделе газеты в Лоренсе, штат Канзас, США. Django теперь в ведении международной группы добровольцев.

    Какие сайты используют Django?

    Django является MVC-фреймворком, но вы называете контроллер "видом", а представление "шаблоном". Почему вы не используете стандартные имена?

    Ок, стандартные наименования спорны.

    В нашей интерпретации MVC, "вид" описывает данные, представленные пользователю. Неважно как данные выглядят, а важнее знать, какие данные представлены. "Вид" описывает, какие данные вы видите, а не то, как вы их видите. Это тонкое различие.

    Так, в нашем случае, "вид" - это callback-функция Python для конкретного URL, потому что эта функция описывает представленные данные.

    Кроме того, разумно отделить данные от представления - вот где на помощь приходят шаблоны. В Django, "вид" предоставляет данные, и передает их в шаблон, который описывает, в каком виде они должны быть представлены.

    Где же тогда здесь "контроллер"? В случае с Django, это вероятно непосредственно сам фреймворк: механизм, который посылает запрос соответствующему виду, согласно конфигурации Django URL.

    Если вы изголодались по акронимам, то вы можете сказать, что Django является “MTV”- фреймворком, где M - модель, T - шаблон и V - вид. Эта разбивка имеет гораздо больше смысла.

    <Фреймворк X> выполняет <функцию Y> - почему не Django?

    Мы хорошо знаем, что существуют и другие Web-фреймворки, и мы не прочь позаимствовать идеи там, где это необходимо. Однако, Django был разработан именно потому, что мы были недовольны сложившимся положением вещей, так что имейте в виду, что фраза "потому что <Фреймворк X> имеет эту функцию”, не будет достаточным основанием, чтобы добавить её в Django.

    Почему вы написали весь Django "с нуля", вместо того чтобы использовать другие библиотеки Python?

    Когда несколько лет назад Adrian и Simon создавали Django, они посвятили немало времени исследованиям различных доступных Web-фреймворков Python.

    По нашему мнению, ни один из них не удовлетворял наши запросы на 100 процентов.

    Мы немного придирчивы. Вы даже можете нас назвать перфекционистами.

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

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

    Как мы уже говорили: мы придирчивы.

    Мы опубликовали наши взгляды на странице design philosophies page.

    Действительно ли Django является CMS (Система управления контентом)?

    Нет, Django не является CMS, или каким-либо видом “turnkey product”. Это Web-фреймворк; это инструмент программирования, который позволяет вам создавать Web-сайты.

    Например, нет большого смысла в сравнении Django с такой программой как Drupal, потому что Django - это фреймворк, который вы используете для создания таких продуктов, как Drupal.

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

    Как я могу скачать документацию Django для её прочтения в автономном режиме?

    Документы Django доступны в директории docs любого архива Django. Эти документы находятся в формате ReST (ReStructured Text), и каждый текстовый файл соответствуют Web-странице на официальном сайте Django.

    Т.к. документация хранится в общедоступном репозитории, вы можете просматривать изменения в документации, а также и изменения кода.

    Технически, документы на сайте Django генерируются из последних версий этих ReST-документов, поэтому документы на сайте Django могут предоставить больше информации, чем документы, находящиеся в последней версии Django.

    Где я могу нанять Django-разработчиков?

    На странице найм разработчиков Вы можете посмотреть список Django-разработчиков, которые будут рады вам помочь.

    Возможно, вас заинтересует размещение работы на сайте http://djangogigs.com/ . Если вы хотите найти людей, работающих с Django в том месте, где вы живете, тогда посмотрите здесь: http://djangopeople.net/.

    Оригинал статьи на docs.djangoproject.com

    Перевод КОМТЕТ komtet.ru

    www.komtet.ru