Django — бесплатная веб-структура с открытым исходным кодом, написанная на Python. Она построена на принципах масштабируемости, многократного использования элементов и быстрой разработки. Также она отличается согласованностью и слабой связанностью компонентов, за счет чего отдельные компоненты не зависят друг от друга.
В этом обучающем модуле мы выполним настройку среды Django для целей разработки на сервере Ubuntu 20.04. Для общедоступного сайта нужно учитывать и дополнительные аспекты, включая подключение к базе данных, настройку доменного имени и добавление уровней безопасности. Мы предлагаем много разных обучающих модулей Django, которые помогут вам на разных этапах построения приложений. Все они отмечены тегом Django.
Для прохождения этого обучающего модуля вам потребуется следующее:
Учетная запись без привилегий root с привилегиями sudo
, которую вы можете создать, следуя указаниям обучающего модуля «Начальная настройка сервера Ubuntu 20.04».
Python 3 с виртуальной средой программирования. Для его установки следуйте указаниям нашего руководства по установке Python 3.
Существует несколько способов установки Django, в том числе установка с помощью диспетчера пакетов Python pip в виртуальной среде.
В домашнем каталоге сервера мы создадим каталог, где будет располагаться наше приложение Django. Используйте следующую команду для создания каталога с именем django-apps
или другим предпочитаемым именем. Затем перейдите в каталог.
- mkdir django-apps
- cd django-apps
Создайте виртуальную среду в каталоге django-apps
. Мы присвоим ей общее имя env
, но вы можете использовать другое имя, имеющее значение для вас и вашего проекта.
- virtualenv env
Активируйте виртуальную среду с помощью следующей команды:
- . env/bin/activate
После активации префикс изменится на (env)
,что будет выглядеть примерно так, в зависимости от каталога, в котором вы находитесь:
-
Установите пакет Django в этой среде с помощью pip. Установка Django позволит нам создавать и запускать приложения Django.
- pip install django
Для подтверждения установки Django следует запустить проверку версии:
- django-admin --version
Результат должен выглядеть примерно так:
Output3.0.6
Мы установили Django на сервере и теперь можем перейти к созданию тестового проекта для проверки его работы. Мы создадим каркас веб-приложения.
Если вы выполнили все указания нашего обучающего модуля по начальной настройке сервера или на вашем сервере работает брандмауэр, необходимо открыть в брандмауэре сервера порт, который мы будем использовать. Для брандмауэра UFW вы можете открыть порт с помощью следующей команды:
- sudo ufw allow 8000
Если вы используете брандмауэры DigitalOcean, вы можете выбрать HTTP
в правилах входящего трафика. Вы можете узнать больше о брандмауэрах DigitalOcean и создании правил для них посредством изменения правил входящего трафика.
Теперь мы можем сгенерировать приложение, используя утилиту командной строки django-admin
, предназначенную для выполнения административных задач Python. Затем мы используем команду startproject
для создания структуры каталогов проекта для нашего тестового сайта.
Запустите следующую команду в каталоге django-apps
:
- django-admin startproject testsite
Примечание. При запуске команды django-admin startproject <projectname>
каталогу проекта и пакету проекта будет присвоено имя <projectname>
, а сам проект будет создан в каталоге запуска команды. Если указан необязательный параметр <destination>
, Django использует указанный в нем каталог в качестве каталога проекта и создаст в нем файл manage.py
и пакет проекта.
Посмотрим, какие файлы проекта были только что созданы. Перейдите в каталог testsite
и выведите содержимое каталога, чтобы просмотреть список созданных файлов:
- cd testsite
- ls
Outputmanage.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
Вы увидите четыре файла:
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
в любое время в зависимости от требований разработки.
Теперь мы можем запустить сервер и посмотреть сайт на указанном хосте и порту с помощью команды 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-адрес вашего сервера в квадратных скобках в двойных или одинарных кавычках.
"""
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
. Теперь откроем наше веб-приложение в браузере.
В заключение мы создадим административного пользователя, чтобы вы могли использовать интерфейс администратора Django. Давайте сделаем это с помощью команды createsuperuser
:
- python manage.py createsuperuser
Вам будет предложено ввести имя пользователя, адрес электронной почты и пароль вашего пользователя.
Мы завершили настройку конфигурации, и теперь вы можете вернуться в каталог, где располагается файл manage.py
:
- cd ~/django-apps/testsite/
Теперь запустите следующую команду, заменяющую your-server-ip на IP-адрес вашего сервера:
- python manage.py runserver 0.0.0.0:8000
В заключение вы можете перейти по ссылке ниже, чтобы посмотреть карка сайта. Для этого замените выделенный текст фактическим IP-адресом вашего сервера:
http:/
После загрузки страницы вы увидите следующее:
Это подтверждает, что установка Django выполнена правильно, и наш тестовый проект нормально работает.
Чтобы получить доступ к интерфейсу администратора, добавьте /admin/
в конец URL:
http://your_server_ip:8000/admin/
Вы перейдете на экран входа:
При вводе имени администратора и пароля, которые вы только что создали, вы получите доступ к основному административному разделу сайта:
Дополнительную информацию о работе с интерфейсом администратора Django можно найти в статье «Активация и подключение интерфейса администратора Django».
Закончив тестирование приложения, нажмите CTRL
+ C
для остановки команды runserver
. Вы вернетесь в среду программирования.
Когда вы будете готовы покинуть вашу среду Python, вы можете запустить команду deactivate
:
- deactivate
После отключения среды программирования вы вернетесь в командную строку терминала.
В этом обучающем модуле мы успешно выполнили установку Django и настроили среду разработки, чтобы начать работать с вашим приложением Django.
Теперь у вас есть необходимый фундамент для построения веб-приложений Django.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!