Как установить веб-фреймворк Django на Ubuntu 22.04

Введение

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

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

Различные методы

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

Некоторые из различных методов включают:

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

Предварительные требования

Перед началом вам следует иметь нерутового пользователя с привилегиями sudo, доступного на вашем сервере Ubuntu 22.04. Для этого следуйте нашему руководству по начальной настройке сервера Ubuntu 22.04.

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

Если вы хотите установить Django, используя репозитории Ubuntu, процесс очень простой.

Сначала обновите локальный индекс пакетов с помощью apt:

  1. sudo apt update

Затем проверьте, какая версия Python у вас установлена. 22.04 по умолчанию поставляется с Python 3.10, что вы можете проверить, набрав:

  1. python3 -V

Вы должны увидеть вывод подобный этому:

Output
Python 3.10.4

Далее установите Django:

  1. sudo apt install python3-django

Вы можете проверить успешность установки, набрав:

  1. django-admin --version
Output
3.2.12

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

Установка с помощью pip в виртуальной среде

Самым гибким способом установки Django на вашей системе является установка в виртуальной среде. Мы покажем вам, как установить Django в виртуальной среде, которую мы создадим с помощью модуля venv, входящего в стандартную библиотеку Python 3. Этот инструмент позволяет создавать виртуальные среды Python и устанавливать пакеты Python без влияния на остальную систему. Таким образом, вы можете выбирать пакеты Python на основе проекта, независимо от конфликтов с требованиями других проектов.

Давайте начнем с обновления локального индекса пакетов:

  1. sudo apt update

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

  1. python3 -V
Output
Python 3.10.4

Затем установим pip и venv из репозиториев Ubuntu:

  1. sudo apt install python3-pip python3-venv

Теперь, когда вы начинаете новый проект, вы можете создать виртуальное окружение для него. Начните с создания и перехода в новый каталог проекта:

  1. mkdir ~/newproject
  2. cd ~/newproject

Затем создайте виртуальное окружение внутри каталога проекта, используя команду python, совместимую с вашей версией Python. Мы назовем наше виртуальное окружение my_env, но вы можете назвать его что-то описательное:

  1. python3 -m venv my_env

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

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

  1. source my_env/bin/activate

Ваш приглашение командной строки должно измениться, чтобы отразить, что вы теперь в вашем виртуальном окружении. Оно будет выглядеть примерно так: (my_env)username@hostname:~/newproject$.

В вашей новой среде вы можете использовать pip для установки Django. Независимо от вашей версии Python, pip должен вызываться просто как pip, когда вы находитесь в вашем виртуальном окружении. Также обратите внимание, что вам не нужно использовать sudo, так как вы устанавливаете локально:

  1. pip install django

Вы можете проверить установку, набрав:

  1. django-admin --version
Output
4.0.4

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

Для выхода из вашей виртуальной среды вам нужно выполнить команду deactivate откуда угодно в системе:

  1. deactivate

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

  1. cd ~/newproject
  2. source my_env/bin/activate

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

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

Сначала обновим локальный индекс пакетов:

  1. sudo apt update

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

  1. python3 -V
Output
Python 3.10.4

Затем установите pip и venv из официальных репозиториев:

  1. sudo apt install python3-pip python3-venv

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

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

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

  1. cd ~/django-dev

Создайте виртуальную среду, используя команду python, совместимую с установленной версией Python:

  1. python3 -m venv my_env

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

  1. source my_env/bin/activate

Затем вы можете установить репозиторий с помощью pip. Опция -e установит его в «редактируемом» режиме, что необходимо при установке из системы контроля версий:

  1. pip install -e ~/django-dev

Вы можете проверить успешность установки, набрав:

  1. django-admin --version
Output
4.0.4.2

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

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

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

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

Сначала создайте каталог для вашего проекта и перейдите в него:

  1. mkdir ~/django-test
  2. cd ~/django-test

Затем создайте ваше виртуальное окружение:

  1. python3 -m venv my_env

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

  1. source my_env/bin/activate

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

  1. pip install django

Для создания вашего проекта вы можете использовать django-admin с командой startproject. Мы назовем наш проект djangoproject, но вы можете заменить это другим именем. startproject создаст каталог внутри вашего текущего рабочего каталога, который будет включать в себя:

  • A management script, manage.py, which you can use to administer various Django-specific tasks.
  • A directory (with the same name as the project) that includes the actual project code.

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

  1. django-admin startproject djangoproject .

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

Для миграции базы данных введите:

  1. python manage.py migrate

Вы увидите вывод, подобный следующему:

Output
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 auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying auth.0012_alter_user_first_name_max_length... OK Applying sessions.0001_initial... OK

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

  1. python manage.py createsuperuser

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

Изменение ALLOWED_HOSTS в настройках Django

Для успешного тестирования вашего приложения вам нужно изменить одну из директив в настройках Django.

Откройте файл настроек, набрав:

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

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

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

~/django-test/djangoproject/settings.py
ALLOWED_HOSTS = ['your_server_ip_or_domain', 'your_second_ip_or_domain', . . .]

После завершения сохраните файл и закройте редактор.

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

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

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

  1. sudo ufw allow 8000

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

  1. python manage.py runserver your_server_ip:8000

Посетите IP-адрес вашего сервера, за которым следует :8000, в вашем веб-браузере:

http://your_server_ip:8000

Вы должны увидеть что-то похожее на это:

Для доступа к административному интерфейсу добавьте /admin/ в конец вашего URL:

http://your_server_ip:8000/admin/

Это перенаправит вас на экран входа в систему:

Если вы введете имя пользователя и пароль администратора, которые только что создали, вы получите доступ к основному разделу администратора сайта:

Для получения дополнительной информации о работе с административным интерфейсом Django, пожалуйста, ознакомьтесь с руководством «Как включить и подключить интерфейс администратора Django».

Когда вы закончите просмотр базового сайта, вы можете остановить сервер разработки, набрав CTRL-C в вашем терминале.

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

Заключение

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

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

Source:
https://www.digitalocean.com/community/tutorials/how-to-install-the-django-web-framework-on-ubuntu-22-04