1.2. Проект Django

Создание и активация виртуальной среды

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

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

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

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

$ cd %userprofile%/desktop && mkdir firstsite && cd firstsite
$ python -m venv env
$ env/scripts/activate

Первая команда создаст на рабочем столе папку firstsiteи перейдет в неё. Вторая – создаст в ней виртуальную среду env. Третья – активирует эту виртуальную среду. Обратите внимание на появившийся префикс (env) в консоли. Он служит индикатором того, что виртуальная среда активна и все пакеты проекта будут устанавливаться в неё, а не глобально.

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

$ cd %userprofile%/desktop && cd firstsite
$ env/scripts/activate

Установка фреймворка

Для установки Django введем в консоли следующую команду:

$ pip install django

Помимо Django, будут установлены необходимые фреймворку для работы библиотеки:

  • pytz – обрабатывает временные отметки — комбинации даты и времени;

  • sqlparse – служит для разбора SQL-кода;

  • asgiref – реализует интерфейс ASGI, посредством которого эксплуатационный веб-сервер взаимодействует с сайтом, написанным на Django

Спустя некоторое время установка закончится, о чем pip нам сообщит:

Successfully installed asgiref-3.3.4 django-3.2 pytz-2021.1 sqlparse-0.4.1

Теперь мы можем начинать разработку нашего первого веб-сайта.

Проект Django

Первое, что нам нужно сделать, — создать новый проект. Проектом называется совокупность всего программного кода, составляющего разрабатываемый сайт.

Физически он представляет собой папку, в которой находятся папки и файлы с исходным кодом (назовем ее папкой проекта).

Создадим новый пустой проект Django, которому дадим имя firstesite. Для этого в запущенной ранее командной строке введем команду:

Если вы не создавали виртуальную среду, то уберите точку в конце команды. В этом случае не будет использоваться текущая директория в качестве папки проекта, а создастся новая с именем /firstsite

$ django-admin startproject firstsite .

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

В папке будет создана следующая структура файлов и папок:

firstsite
├───env/
├───firstsite/
│   ├───__init__.py
│   ├───asgi.py
│   ├───settings.py
│   ├───urls.py
│   └───wsgi.py
└───manage.py

Внешняя папка firstsite— это папка проекта со следующим содержимым:

  • manage.py — программный файл с кодом одноименной служебной утилиты, выполняющей различные действия над проектом;

  • внутренняя папка firstsite— пакет языка Python, содержащий модули, которые относятся к проекту целиком и задают его конфигурацию. Назовем данную папку пакетом конфигурации.

Пакет конфигурации включает в себя такие модули:

  • init.py — пустой файл, сообщающий Python, что папка, в которой он находится, является полноценным пакетом;

  • settings.py — модуль с настройками самого проекта. Включает описание конфигурации базы данных проекта, пути ключевых папок, важные параметры, связанные с безопасностью и т.д.;

  • urls.py — модуль с маршрутами уровня проекта;

  • wsgi.py — модуль, связывающий проект с веб-сервером посредством интерфейса WSGI;

  • asgi.py (начиная с Django 3.0) — модуль, связывающий проект с веб-сервером через интерфейс ASGI.

Модули wsgi.py и asgi.py используются при публикации готового сайта в Интернете.

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

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

Запуск созданного проекта

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

$ manage.py runserver

Здесь мы пользуемся уже утилитой manage.py, сгенерированной программой django-admin при создании проекта. Команда runserver, которую мы записали после имени этой утилиты, как раз и запускает отладочный веб-сервер.

Последний выдаст сообщение о том, что сайт успешно запущен (если его код не содержит ошибок) и доступен по интернет-адресу http://127.0.0.1:8000/ (или http://localhost:8000/). Как видим, отладочный сервер по умолчанию работает через TCP-порт 8000 (при необходимости можно использовать другой порт).

Запустим веб-обозреватель и наберем в нем один из интернет-адресов нашего сайта. Мы увидим информационную страничку, предоставленную самим Django и сообщающую, что сайт, хоть еще и "пуст", но в целом работает. Для остановки отладочного веб-сервера достаточно нажать комбинацию клавиш CTRL+C

Last updated