Введение

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

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

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

django illustration for: Предварительные требования

Для прохождения этого обучающего модуля вам потребуется следующее:

Шаг 1 — Установка Django

Существует несколько способов установки Django, в том числе установка с помощью диспетчера пакетов Python pip в виртуальной среде.

В домашнем каталоге сервера мы создадим каталог, где будет располагаться наше приложение Django. Используйте следующую команду для создания каталога с именем <^>django-apps<^> или другим предпочитаемым именем. Затем перейдите в каталог.

				
					
mkdir &lt;^&gt;django-apps&lt;^&gt;

cd &lt;^&gt;django-apps&lt;^&gt;

				
			

Создайте виртуальную среду в каталоге <^>django-apps<^>. Мы присвоим ей общее имя <^>env<^>, но вы можете использовать другое имя, имеющее значение для вас и вашего проекта.

				
					
virtualenv &lt;^&gt;env&lt;^&gt;

				
			

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

				
					
. env/bin/activate

				
			

После активации префикс изменится на <^>(env)<^>,что будет выглядеть примерно так, в зависимости от каталога, в котором вы находитесь:

				
					


				
			

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

				
					
pip install django

				
			

Для подтверждения установки Django следует запустить проверку версии:

				
					
django-admin --version

				
			

Результат должен выглядеть примерно так:

				
					
[secondary_label Output]

&lt;^&gt;3.0.6&lt;^&gt;

				
			

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

Шаг 2 — Настройка брандмауэра

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

				
					
sudo ufw allow 8000

				
			

Если вы используете брандмауэры the cloud provider, вы можете выбрать HTTP в правилах входящего трафика. Вы можете узнать больше о брандмауэрах the cloud provider и создании правил для них посредством изменения правил входящего трафика.

Шаг 3 — Запуск проекта

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

Запустите следующую команду в каталоге django-apps:

				
					
django-admin startproject testsite

				
			

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

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

				
					
cd testsite

				
			
				
					
ls

				
			
				
					
[secondary_label Output]

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

				
			

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

				
					
[secondary_label Output]

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

				
			

Расскажем об этих файлах подробнее:

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

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

Шаг 4 — Настройка Django

Теперь мы можем запустить сервер и посмотреть сайт на указанном хосте и порту с помощью команды runserver.

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

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

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

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

				
			

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

				
					
[label settings.py]

"""

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 = ['&lt;^&gt;your-server-ip&lt;^&gt;']

...

				
			

Чтобы сохранить изменения и выйти из nano, нажмите CTRL + x, а затем нажмите y. Теперь откроем наше веб-приложение в браузере.

В заключение мы создадим административного пользователя, чтобы вы могли использовать интерфейс администратора Django. Давайте сделаем это с помощью команды 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

				
			

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

				
					
http://&lt;^&gt;your-server-ip&lt;^&gt;:8000/

				
			

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

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

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

				
					
http://&lt;^&gt;your_server_ip&lt;^&gt;:8000/admin/

				
			

Вы перейдете на экран входа:

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

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

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

Когда вы будете готовы покинуть вашу среду Python, вы можете запустить команду deactivate:

				
					
deactivate

				
			

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

Заключение

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

Теперь у вас есть необходимый фундамент для построения веб-приложений Django.