Django – это полноценный веб-фреймворк Python для создания приложений и динамических сайтов. Он позволяет значительно ускорить процесс разработки и развёртывания приложения, беря на себя общее структурирование кода.
Этот мануал поможет вам установить Django на сервер Ubuntu 20.04, а также научит работать с этим фреймворком.
Методы установки Django
Существует несколько методов установки Django, каждый из которых имеет свои преимущества в определённых ситуациях.
Вот основные методы:
- Глобальная установка Django из пакета. Официальный репозиторий Ubuntu предоставляет пакеты Django, которые можно быстро установить при помощи менеджера apt. Этот метод очень прост, но не так гибок, как другие. Кроме того, репозиторий может содержать устаревшую версию Django.
- Установка через pip в виртуальную среду. Пакеты venv и virtualenv позволяют создавать автономные среды для разных проектов. Благодаря этому выможете установить Django в каталог проекта, не повлияв на остальную систему, включая другие пользовательские настройки и проекты. В большинстве случаев это самый практичный и гибкий метод установки и работы с Django, потому рекомендуется использовать именно его.
- Установка разрабатываемой версии с помощью Git. Чтобы установить последнюю разрабатываемую версию вместо стабильного релиза, нужно клонировать код из репозитория git. Это предоставит новейшие функции и исправления программы; установить такую версию можно в виртуальную среду. Но имейте в виду: разрабатываемые версии нестабильны.
Выберите наиболее подходящий вариант установки Django и следуйте инструкциям соответствующего раздела этого мануала.
Требования
Для работы вам понадобится сервер Ubuntu 20.04, полностью настроенный по этому мануалу.
Глобальная установка Django из пакета
Установка Django из официального репозитория Ubuntu очень проста.
Для начала нужно обновить индекс пакетов при помощи apt:
sudo apt update
После этого нужно узнать, какая версия Python установлена на вашем сервере. Сервер 20.04 по умолчанию поставляется с Python 3.8. Вы можете проверить это:
python3 -V
Python 3.8.2
Теперь можно установить Django:
sudo apt install python3-django
Убедитесь, что установка прошла успешно:
django-admin --version
2.2.12
Если команда вернула версию установленного фреймворка, значит, установка прошла успешно. Обратите внимание: это не самая свежая версия Django. Стандартные репозитории системы обычно содержат немного устаревшие пакеты.
Теперь можете приступать к созданию тестового проекта.
Установка Django с помощью pip
Самым гибким вариантом установки является использование виртуальной среды. Это позволяет устанавливать любые необходимые пакеты изолированно, не влияя на систему в целом. Благодаря модулю venv вы можете выбирать для проектов пакеты Python на индивидуальной основе и не беспокоиться о конфликте зависимостей.
Для начала нужно обновить индекс пакетов:
sudo apt update
Проверьте версию Python:
python3 -V
Python 3.8.2
Теперь установите pip и venv из репозитория Ubuntu:
sudo apt install python3-pip python3-venv
Теперь нужно создать индивидуальную виртуальную среду для вашего проекта. Создайте каталог и перейдите в него (вместо newproject укажите название вашего проекта):
mkdir ~/newproject
cd ~/newproject
Создайте виртуальную среду в каталоге проекта с помощью команды python. Мы назовем ее условно my_env, но лучше использовать более описательное имя, например, имя вашего проекта.
python3 -m venv my_env
Эта команда создаст автономную среду, а затем установит Python и pip в изолированный каталог. Созданный каталог будет содержать файловую иерархию для установки пакетов.
Чтобы установить пакеты в изолированную среду, сначала её нужно включить:
source my_env/bin/activate
После этого командная строка изменится. Это сообщает о том, что виртуальная среда была включена. Она будет выглядеть примерно так:
(my_env)username@hostname:~/newproject$
В новой среде используйте pip для установки Django. Вне зависимости от того, какую версию Python вы используете, в виртуальной среде нужно запускать команду pip, а не pip3. Кроме того, при локальной установке не нужно использовать sudo.
pip install django
Убедитесь, что программа установлена успешно.
django-admin --version
3.0.8
Ваша версия может отличаться.
Чтобы покинуть виртуальную среду, используйте команду:
deactivate
После этого командная строка примет свой стандартный вид. Чтобы снова включить виртуальную среду, вернитесь в каталог проекта и введите эти команды:
cd ~/newproject
source my_env/bin/activate
Установка разрабатываемой версии Django с помощью Git
Чтобы установить разрабатываемую версию Django, загрузите её из репозитория Git.
Обновите индекс пакетов:
sudo apt update
Проверьте версию Python, установленную на сервере:
python3 -V
Python 3.8.2
А затем установите менеджер пакетов pip и пакет venv:
sudo apt install python3-pip python3-venv
После этого клонируйте репозиторий Django. Он содержит новейшие функции и исправления, но не является стабильным. Чтобы клонировать репозиторий в каталог ~/django-dev в домашнем каталоге, введите:
git clone git://github.com/django/django ~/django-dev
Перейдите в этот каталог:
cd ~/django-dev
Создайте виртуальную среду для вашего проекта:
python3 -m venv my_env
Активируйте ее:
source my_env/bin/activate
После этого установите репозиторий с помощью менеджера pip. Используйте флаг -e для установки в режиме editable, это необходимо при установке через систему контроля версий.
pip install -e ~/django-dev
Убедитесь, что установка прошла успешно:
django-admin --version
3.2
Версия может отличаться.
Теперь у вас есть последняя (но нестабильная) версия Django в виртуальной среде.
Создание простого проекта Django
После установки Django мы можем ознакомиться с основами этого фреймворка. В этом разделе вы узнаете, как создать простой проект и проверить его работу на сервере разработки в виртуальной среде.
Для начала создайте каталог для проекта и перейдите в него.
mkdir ~/django-test
cd ~/django-test
Создайте виртуальную среду:
python3 -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/
На экране появится форма входа, которая запросит имя и пароль пользователя.
Введите учетные данные администратора, которого вы только что создали, и у вас появится доступ к управлению сайтом.
Поработав со своим тестовым проектом, остановите сервер разработки, введя в терминал CTRL-C. Этот стандартный проект Django в дальнейшем можно использовать как шаблон для разработки уникального сайта. Чтобы узнать, как создавать пользовательские приложения и настроить свой сайт, читайте документацию Django.
Заключение
Теперь у вас есть фреймворк Django, обеспечивающий вас всеми необходимыми инструментами для разработки сайтов и приложений.
Читайте также: