Установка веб-фреймворка Django в Debian 8

Published by Leave your thoughts

Django – это мощный полнофункциональный фреймворк для создания приложений Python, который позволяет значительно ускорить процесс создания и развёртывания приложения, беря на себя общее структурирование кода. Таким образом, разработчик может сосредоточиться на уникальности и контенте сайта.

Данное руководство рассматривает различные методы установки Django на сервер Ubuntu 16.04, а также начало работы с этим фреймворком.

 Методы установки Django

Существует несколько различных методов установки Django, каждый из которых имеет свои преимущества в определённых ситуациях.

  • Глобальная установка Django из пакета. Официальный репозиторий Ubuntu предоставляет пакеты Django, которые можно без труда установить при помощи менеджера пакетов apt. Этот метод очень прост, но не так гибок, как другие методы. Кроме того, репозиторий может содержать несколько устаревшую версию пакета Django.
  • Глобальная установка Django при помощи pip. Инструмент pip – это менеджер пакетов Python. С его помощью можно выполнить общесистемную установку Django. Он, как правило, предоставляет последнюю доступную версию пакета. Однако глобальные (общесистемные) установки всегда менее гибки.
  • Установка через pip в Virtualenv. Пакет virtualenv позволяет создавать автономные окружения для разных проектов. При помощи этой технологии можно установить Django в каталог проекта, при этом не повлияв на систему в целом. Это позволяет задавать индивидуальные настройки для каждого проекта. Виртуальное окружение (или среда) – гораздо более гибкий вариант установки пакета.
  • Установка разрабатываемой версии с помощью Git. Чтобы установить последнюю разрабатываемую версию вместо стабильного релиза, нужно получить код из репозитория git . Это предоставит новейшие функции и исправления программы; установить такую версию можно как глобально, так и локально. Но имейте в виду: разрабатываемые версии нестабильны.

Выберите наиболее подходящий вариант установки Django и следуйте инструкциям соответствующего раздела данного руководства. В конце руководства вы найдёте инструкции по созданию простого приложения.

Требования

  • Сервер Debian 8.
  • Пользователь с доступом к команде sudo (о создании такого пользователя можно прочитать здесь).

Глобальная установка Django из пакета

Процесс установки Django из официального репозитория Ubuntu очень прост.

Для начала нужно обновить список локальных пакетов при помощи apt:

sudo apt-get update

После этого нужно установить пакет python-django. При использовании Python 2 введите:

sudo apt-get install python-django

В Python 3:

sudo apt-get install python3-django

Убедитесь, что установка прошла успешно:

django-admin --version
1.7.11

Если команда вернула версию установленного фреймворка, значит, установка прошла успешно. Обратите внимание: эта версия не является последней стабильной версией Django. Стандартные репозитории системы, как правило, содержат устаревшие пакеты.

Теперь можно переходить к разделу по созданию простого приложения.

Глобальная установка через pip

Чтобы выполнить глобальную установку последней стабильной версии Django, используйте инструмент pip, менеджер пакетов Python. Чтобы установить pip, нужно сначала обновить индекс пакетов:

sudo apt-get update

Python 2

Чтобы установить pip для Python 2, введите:

sudo apt-get install python-pip

Теперь менеджер пакетов pip установлен, можно приступать к установке Django.

sudo pip install django

Запросите версию программы, чтобы проверить установку.

django-admin --version
1.10.4

Как видите, pip предоставляет более новый релиз Django, чем репозиторий Debian.

Python 3

Чтобы установить pip для Python 3, используйте:

sudo apt-get install python3-pip

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

sudo pip3 install django

Запросите версию программы, чтобы проверить установку.

django-admin --version
1.10.4

Вы установили последний стабильный релиз Django.

Установка Django через pip в Virtualenv

Вероятно, наиболее гибким вариантом установки является использование virtualenv. Этот инструмент позволяет создавать виртуальные окружения Python, в которые можно устанавливать любые необходимые пакеты, не влияя на систему в целом. Благодаря virtualenv можно выбирать пакеты для проектов на индивидуальной основе и при этом не беспокоиться о конфликте зависимостей.

Для начала нужно установить пакетный менеджер pip из официального репозитория Ubuntu. Обновите индекс пакетов:

sudo apt-get update

Python 2

Сначала нужно установить pip глобально. В Python 2 для этого используется команда:

sudo apt-get install python-pip

После установки pip его можно использовать для установки пакета virtualenv.

sudo pip install virtualenv

Теперь можно создать индивидуальную виртуальную среду для любого проекта. Создайте каталог нового проекта и перейдите в него:

mkdir ~/projectname
cd ~/projectname

Создайте виртуальное окружение в каталоге проекта:

virtualenv newenv

Примечание: Замените условное название venv своим названием.

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

Чтобы установить пакеты в изолированную среду, включите её:

cd ~/projectname
source venv/bin/activate

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

(venv)username@hostname:~/projectname$

В новом окружении используйте pip для установки Django. При этом не нужно использовать sudo.

pip install django

Убедитесь, что программа установлена успешно.

django-admin --version
1.10.4

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

deactivate

Примечание: Эту команду можно запустить из любой точки системы.

После этого командная строка примет свой стандартный вид. Чтобы снова включить виртуальную среду, вернитесь в каталог проекта и введите:

cd ~/projectname
source venv/bin/activate

Python 3

Для начала нужно установить pip глобально. В Python 3 для этого используется команда:

sudo apt-get install python3-pip

После установки pip установите с его помощью пакет virtualenv.

sudo pip3 install virtualenv

Теперь можно создать индивидуальную виртуальную среду для проекта. Создайте каталог нового проекта и перейдите в него:

mkdir ~/projectname
cd ~/projectname

Создайте виртуальное окружение в каталоге проекта:

virtualenv venv

Примечание: Замените условное название venv своим названием.

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

Чтобы установить пакеты в изолированную среду, включите её:

cd ~/projectname
source venv/bin/activate

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

(venv)username@hostname:~/projectname$

В новом окружении используйте pip для установки Django. Вне зависимости от того, какую версию Python вы используете, в виртуальной среде нужно запускать только команду pip. Также при этом не нужно использовать sudo.

pip install django

Убедитесь, что программа установлена успешно.

django-admin --version
1.10.4

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

deactivate

Примечание: Эту команду можно запустить из любой точки системы.

После этого командная строка примет свой стандартный вид. Чтобы снова включить виртуальную среду, вернитесь в каталог проекта и введите:

cd ~/projectname
source venv/bin/activate

Установка разрабатываемой версии Django из git

Чтобы установить разрабатываемую версию Django, загрузите её из репозитория git.

Сначала установите git при помощи стандартного менеджера пакетов apt. Обновите индекс пакетов:

sudo apt-get update

А затем установите git и менеджер пакетов pip, который понадобится позже для установки Django.

Python 2

Чтобы установить все необходимые пакеты в Python 2, введите:

sudo apt-get install git python-pip

После установки git клонируйте репозиторий Django. Он содержит новейшие функции и исправления, но не является стабильным. Чтобы клонировать репозиторий в каталог django-dev в домашнем каталоге, введите:

git clone git://github.com/django/django ~/django-dev

После этого установите его с помощью пакетного менеджера pip. Используйте флаг -e  для установки в режиме editable, поскольку это необходимо при установке через систему контроля версий.

sudo pip install -e ~/django-dev

Чтобы убедиться, что установка прошла успешно, запросите версию программы:

django-admin --version
1.11.dev20161220175814

Примечание: Этот метод можно применить в виртуальной среде и таким образом изолировать нестабильную версию Django.

Python 3

Чтобы установить все необходимые пакеты в Python 3, введите:

sudo apt-get install git python3-pip

Чтобы клонировать репозиторий в каталог django-dev в домашнем каталоге, введите:

git clone git://github.com/django/django ~/django-dev

После этого установите его с помощью пакетного менеджера pip. Используйте флаг -e  для установки в режиме editable, поскольку это необходимо при установке через систему контроля версий.

sudo pip3 install -e ~/django-dev

Чтобы убедиться, что установка прошла успешно, запросите версию программы:

django-admin --version
1.11.dev20161220175814

Примечание: Этот метод можно применить в виртуальной среде, чтобы изолировать нестабильную версию Django.

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

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

Базовое приложение

Для создания проекта используется команда django-admin. Она создаст каталог (в данном руководстве он будет условно называться projectname). В новом каталоге команда создаст сценарий для управления проектом и ещё один каталог (projectname) для хранения кода приложения.

Примечание: Если у вас уже есть родительские каталоги проекта (например, созданные при помощи virtualenv), Django может разместить скрипты управления и внутренние каталоги в текущем каталоге при помощи следующей команды (обратите внимание на точку в конце стоки):

cd ~/projectname
source venv/bin/activate
django-admin startproject projectname .

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

django-admin startproject projectname
cd projectname

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

./manage.py migrate

Создайте администратора:

./manage.py createsuperuser

Команда предложит выбрать имя пользователя, адрес электронной почты и пароль.

Директива ALLOWED_HOSTS

Прежде чем приступить к тестированию приложения, нужно настроить директиву ALLOWED_HOSTS.

Откройте параметры Django:

nano ~/projectname/projectname/settings.py

Найдите в файле директиву ALLOWED_HOSTS. Она содержит белый список адресов и доменов, которые могут подключаться к Django. Если входящий запрос содержит заголовок Host, который не включен в этот список, такой запрос будет сброшен. Это обеспечит дополнительный уровень безопасности Django.

Перечислите в квадратных скобках все заведомо безопасные для Django IP-адреса или домены. Каждый элемент нужно взять в одинарные кавычки. Все элементы списка разделяются запятыми. Чтобы добавить в список поддомены, поставьте перед доменным именем точку. В приведённом ниже фрагменте вы найдёте несколько закомментированных примеров того, как может выглядеть директива ALLOWED_HOSTS.

. . .
# The simplest case: just add the domain name(s) and IP addresses of your Django server
# ALLOWED_HOSTS = [ 'example.com', '203.0.113.5']
# To respond to 'example.com' and any subdomains, start the domain with a dot
# ALLOWED_HOSTS = ['.example.com', '203.0.113.5']
ALLOWED_HOSTS = ['your_server_domain_or_IP', 'second_domain_or_IP', . . .]

Сохраните и закройте файл.

Тестирование сервера разработки

Создав пользователя, можно запустить сервер разработки Django, чтобы ознакомиться с новым проектом.

Важно! Этот сервер нужно использовать только в процессе разработки, для производства он недостаточно мощный.

Для начала нужно разблокировать порт сервера, защищенный брандмауэром UFW. Для этого введите:

sudo ufw allow 8000

Если вы используете iptables, команда во многом будет зависеть от текущих настроек брандмауэра. В большинстве случаев сработает такое правило:

sudo iptables -I INPUT -p tcp --dport 8000 -j ACCEPT

Читайте также:

Запустите сервер разработки:

~/projectname/manage.py runserver 0.0.0.0:8000

В браузере откройте IP-адрес, указав открытый порт:

server_ip_address:8000

На экране появится приветственная страница Django.

It worked!
Congratulations on your first Django-powered page. […]

Если добавить в конец ссылки сегмент /admin, на экране появится страница входа для администратора.

server_ip_address:8000/admin

Введите имя и пароль администратора, чтобы получить доступ к панели управления.

Ознакомившись со стандартным проектом, остановите сервер разработки, введя в терминал CTRL-C. Этот проект Django в дальнейшем можно использовать как шаблон для разработки уникального сайта. Чтобы узнать, как создавать пользовательские приложения и настроить свой сайт, читайте документацию Django.

Заключение

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

Tags: ,

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>