Проекты и приложения
На протяжении всего этого курса вы снова и снова будете сталкиваться с терминами «проект» и «приложение».
В Django проектом считается установленный веб-фреймворк Django с несколькими настроечными параметрами.
Приложение – это группа моделей, шаблонов, URL-адресов и представлений. Приложения взаимодействуют с веб-фреймворком с целью обеспечения определенного функционала, и их можно использовать в разных проектах.
Проект можно трактовать как свой собственный веб-сайт, содержащий несколько приложений, таких как блог, вики или форум, который другие проекты Django тоже могут использовать.
Создаем первое приложение
Django использует концепцию проектов и приложений, чтобы сохранить чистоту и читабельность кода. Один проект верхнего уровня Django может содержать несколько приложений.
Например, на сайте электронной коммерции может быть одно приложение для аутентификации пользователей, другое - для платежей, а третье - для обработки информации о товаре. Это три разных приложения, которые живут в рамках одного проекта верхнего уровня.
Как и когда вы разделите функциональность на приложения - вопрос субъективный, но в целом каждое приложение должно иметь четкую функцию.
Давайте создадим первое приложение Django. Для этого введем следующую команду.
Не забываем перед созданием приложения отключать сервер нажав Ctrl+C.
# Windows
python manage.py startapp blog
# macOS
python3 manage.py startapp blog
Она создаст базовую структуру приложения, которая будет выглядеть следующим образом:
Давайте рассмотрим каждый файл отдельно:
-
__init__.py: пустой файл, который сообщает Python, что каталогblogнужно трактовать как пакет Python; -
admin.py: здесь вы регистрируете модели, чтобы управлять ими через веб-интерфейс админ панели нашего сайта; -
apps.py: содержит главную конфигурацию приложенияblog; -
migrations: этот каталог будет содержать миграции базы данных приложения. Миграции позволяют Django отслеживать изменения модели соответствующим образом синхронизировать базу данных. Указанный каталог содержит пустой файл__init__.py; -
models.py: содержит относимые к приложению модели данных. Если вы не будете использовать модели в своем приложении, его можно удалить; -
tests.py: здесь можно добавлять относимые к приложению тесты; -
views.py: здесь расположена логика приложения; каждое представление получает HTTP-запрос, обрабатывает его и возвращает ответ.
Когда структура приложения готова, можно приступать к разработке представлений нашего приложения.