Установка Django и настройка среды разработки в Ubuntu 20.04
Python, Ubuntu | Комментировать запись
Django – это свободный и открытый веб-фреймворк, написанный на Python, основными принципами которого являются масштабируемость, повторное использование и быстрая разработка. Среди преимуществ этого фреймворка – высокая согласованность данных и слабая связанность, что позволяет отдельным компонентам быть независимыми друг от друга.
В этом мануале вы узнаете, как настроить базовую среду разработки Django на сервере Ubuntu 20.04. Для запуска веб-сайта вам нужно будет выполнить еще пару действий: подключить БД, настроить домен и добавить настройки безопасности. У нас есть множество мануалов по Django, которые могут помочь вам в этом.
Требования
- Сервер Ubuntu 20.04 с пользователем sudo и настроенным брандмауэром (инструкции можно найти здесь).
- Рабочая среда Python 3 (читайте мануал Установка Python 3 и настройка среды разработки на сервере Ubuntu 20.04).
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: Django, Python, Python 3, Ubuntu, Ubuntu 20.04