Установка Django и настройка среды разработки в Ubuntu 20.04

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

В этом мануале вы узнаете, как настроить базовую среду разработки Django на сервере Ubuntu 20.04. Для запуска веб-сайта вам нужно будет выполнить еще пару действий: подключить БД, настроить домен и добавить настройки безопасности. У нас есть множество мануалов по Django, которые могут помочь вам в этом.

Требования

1: Установка Django

Находясь в домашнем каталоге сервера, создайте каталог, в котором будет храниться ваше приложение Django. Запустите следующую команду, чтобы создать каталог django-apps (укажите другое имя, если хотите). Затем перейдите в этот каталог.

mkdir django-apps
cd django-apps

Находясь в каталоге django-apps, создайте свою виртуальную среду. Мы назовем ее env, но вы должны использовать описательное имя, которое относится к вашему проекту.

virtualenv env

Теперь активируйте виртуальную среду с помощью следующей команды:

. env/bin/activate

После активации среды префикс вашей командной строки изменится, в нем будет указано имя среды (в нашем случае это (env)).

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

pip install django

После установки проверьте работу Django, запросив версию:

django-admin --version

Вы увидите вывод:

3.0.6

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

2: Настройка брандмауэра

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

sudo ufw allow 8000

3: Создание простого приложения

Теперь мы можем сгенерировать базовое приложение, используя django-admin, утилиту командной строки для выполнения административных задач в Python. Затем можно использовать команду startproject, чтобы создать структуру каталогов проекта для тестового веб-сайта.

Находясь в каталоге django-apps, введите следующую команду:

django-admin startproject testsite

Примечание: Команда django-admin startproject <projectname> назовет и каталог, и пакет проекта <projectname> и создаст проект в каталоге, в котором она была выполнена. Если добавить опцию <destination>, вы сможете задать другой целевой каталог в качестве каталога проекта, и тогда Django создаст файл manage.py и пакет проекта в нем.

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

cd testsite
ls
manage.py  testsite

В выводе вы увидите, что этот каталог содержит файл manage.py и папку testsite. Файл manage.py похож на django-admin и помещает пакет проекта в sys.path. Он также задает переменную среды DJANGO_SETTINGS_MODULE, которая указывает на файл settings.py вашего проекта.

Вы можете просмотреть скрипт manage.py в своем терминале, выполнив команду less:

less manage.py

Прочитав скрипт, нажмите q, чтобы выйти из режима просмотра файла.

Теперь перейдите в каталог testsite, чтобы просмотреть другие файлы, которые были созданы:

cd testsite/

Затем выполните следующую команду, чтобы просмотреть содержимое каталога:

ls

Вы увидите четыре файла:

__init__.py  asgi.py  settings.py  urls.py  wsgi.py

Давайте рассмотрим каждый из этих файлов:

  • __init__.py – это входная точка вашего проекта.
  • asgi.py содержит опциональную конфигурацию для развертывания в интерфейсе Asynchronous Server Gateway Interface или ASGI (это стандарт для синхронных и асинхронных приложений, который считается преемником WSGI).
  • settings.py описывает конфигурацию установки Django и сообщает фреймворку, какие настройки доступны.
  • urls.py содержит список urlpatterns, который направляет URL-ы к их видам (views) и связывает их.
  • wsgi.py содержит конфигурацию для интерфейса Web Server Gateway Interface (или WSGI), который обеспечивает стандарт для синхронных приложений Python.

Примечание: Стандартные файлы создаются автоматически, но у вас есть возможность настроить файлы asgi.py или wsgi.py в соответствии с потребностями вашего развертывания.

4: Настройка Django

Теперь мы можем запустить сервер и просмотреть веб-сайт на указанном хосте и порте, выполнив команду runserver.

Добавьте IP-адрес вашего сервера в список ALLOWED_HOSTS в файле settings.py, расположенном в ~/test_django_app/testsite/testsite/.

Как указано в документации Django, переменная ALLOWED_HOSTS содержит список строк, представляющих имена хостов/доменов, которые может обслуживать этот сайт Django. Это специальная мера безопасности для предотвращения атак на HTTP Host заголовки (эти атаки возможны даже при наличии многих, казалось бы, безопасных конфигураций веб-сервера).

Используйте текстовый редактор, чтобы добавить свой IP-адрес. Чтобы открыть файл в nano, выполните следующую команду:

nano ~/django-apps/testsite/testsite/settings.py

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

"""
Django settings for testsite project.
Generated by 'django-admin startproject' using Django 2.0.
...
"""
...
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# Edit the line below with your server IP address
ALLOWED_HOSTS = ['your-server-ip']
...

Вы можете сохранить изменения и выйти из nano (нажмите CTRL + x, а затем y). Скоро мы сможем открыть веб-приложение через браузер.

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

python manage.py createsuperuser

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

5: Доступ к приложению Django

После завершения конфигурации обязательно вернитесь в каталог, где расположен manage.py:

cd ~/django-apps/testsite/

Теперь выполните следующую команду, заменив текст your-server-ip IP-адресом вашего сервера:

python manage.py runserver 0.0.0.0:8000

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

http://your-server-ip:8000/

После загрузки страницы вы увидите следующее:

The install worked successfully! Congratulations!

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

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

http://your_server_ip:8000/admin/

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

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

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

Когда вы закончите тестирование своего приложения, нажмите CTRL+C, чтобы остановить команду runserver. Это вернет вас в среду разработки.

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

deactivate

Это вернет вас в командную строку терминала.

Заключение

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

Tags: , , , ,