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

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

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

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

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

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

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

Требования

Для работы вам понадобится сервер Ubuntu 18.04, полностью настроенный по этому мануалу.

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

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

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

sudo apt update

После этого нужно узнать, какая версия Python установлена на вашем сервере. Сервер 18.04 поставляется с Python 3.6 по умолчанию. Чтобы убедиться в этом, введите:

python3 -V
Python 3.6.5

Теперь можно установить Django:

sudo apt install python3-django

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

django-admin --version
1.11.11

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

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

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

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

Для начала нужно обновить индекс пакетов:

sudo apt update

Проверьте версию Python:

python3 -V
Python 3.6.5

Теперь установите pip из репозитория Ubuntu:

sudo apt install python3-pip

После этого можно установить пакет venv:

sudo apt install python3-venv

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

mkdir ~/newproject
cd ~/newproject

Создайте виртуальную среду в каталоге проекта с помощью команды python. Здесь среда условно называется  my_env.

python3.6 -m venv my_env

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

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

source my_env/bin/activate

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

(my_env)username@hostname:~/newproject$.

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

pip install django

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

django-admin --version
2.1

Ваша версия может отличаться.

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

deactivate

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

cd ~/newproject
source my_env/bin/activate

Установка разрабатываемой версии Django с помощью Git

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

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

sudo apt update

Проверьте версию Python на сервере:

python3 -V
Python 3.6.5

А затем установите менеджер пакетов pip:

sudo apt install python3-pip

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

sudo apt install python3-venv

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

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

Перейдите в этот каталог:

cd ~/django-dev

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

python3.6 -m venv my_env

Активируйте ее:

source my_env/bin/activate

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

pip install -e ~/django-dev

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

django-admin --version
2.2.dev20180802155335

Версия может отличаться.

Теперь у вас есть Django в виртуальной среде.

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

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

Для начала создайте каталог для проекта и перейдите в него.

mkdir ~/django-test
cd ~/django-test

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

python3.6 -m venv my_env

Активируйте ее:

source my_env/bin/activate

Установите Django:

pip install django

Чтобы создать проект, используйте django-admin и команду startproject. Здесь проект условно называется djangoproject (укажите название своего проекта). Команда startproject создаст каталог в текущем рабочем каталоге и поместит в него скрипт управления manage.py и другой каталог (одноименный с проектом) с текущим кодом.

Чтобы избежать большого количества вложенных каталогов, добавьте в команду символ точки – Django поместит скрипт и внутренние каталоги в текущий каталог.

django-admin startproject djangoproject .

Чтобы переместить БД (по умолчанию это SQLite), используйте команду migrate с manage.py. При перемещении все внесенные ранее изменения в модели Django будут применены к схеме БД.

Читайте также: Создание моделей в Django

Чтобы начать миграцию, введите:

python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying admin.0002_logentry_remove_auto_add... OK
Applying admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name... OK
Applying auth.0002_alter_permission_name_max_length... OK
Applying auth.0003_alter_user_email_max_length... OK
Applying auth.0004_alter_user_username_opts... OK
Applying auth.0005_alter_user_last_login_null... OK
Applying auth.0006_require_contenttypes_0002... OK
Applying auth.0007_alter_validators_add_error_messages... OK
Applying auth.0008_alter_user_username_max_length... OK
Applying auth.0009_alter_user_last_name_max_length... OK
Applying sessions.0001_initial... OK

Теперь нужно создать администратора (для доступа к интерфейсу Djano).

Читайте также: Подключение интерфейса администратора Django

python manage.py createsuperuser

Команда запросит имя пользователя, мейл и пароль.

Настройка ALLOWED_HOSTS

Чтобы успешно протестировать свое приложение, вы должны изменить одну из директив в параметрах Django.

Откройте конфигурации:

nano ~/django-test/djangoproject/settings.py

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

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

. . .
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

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

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

Теперь, когда у вас есть пользователь, вы можете запустить сервер разработки Django, чтобы посмотреть, как выглядит новый проект. Имейте в виду: этот сервер нужно использовать только в среде разработки. Когда приложение будет готово к развертыванию, не забудьте внимательно ознакомиться с рекомендациями по развертыванию Django.

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

sudo ufw allow 8000

Теперь запустите сервер:

python manage.py runserver your_server_ip:8000

Откройте свой IP-адрес с портом :8000 в брандмауэре:

http://your_server_ip:8000

Если все работает хорошо, вы увидите:

The install worked successfully! Congratulations!

Чтобы получить доступ к интерфейсу администратора, добавьте секцию /admin/:

http://your_server_ip:8000/admin/

На экране появится форма входа, которая запросит имя и пароль пользователя.

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

Читайте также: Подключение интерфейса администратора Django

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

Заключение

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

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

Tags: , ,