Правила написания кода Django для чистых проектов, работает с любой архитектурой.

Стиль кода

Взаимодействие внутри кода

Когда мы работаем с кодом, у нас должна идти следующая цепочка:

graph LR
    A[Web Server] --> B[WSGI]
    B --> C[View]
    C --> D[Бизнес логика]
    D --> E[ORM]
    E --> F[База данных]

Каждая часть отвечает за разные аспекты кода:

  1. Web server - процессинг запросов и общие проверки, запреты и тд. Под веб сервер в этом случае мы относим любые внешние сервисы: LB, AWS, Nginx. То есть, все что может направлять запросы и как-то их менять. Скорее всего программисты с этим не взаимодействуют.
  2. WSGI - этот сервер обязательно нужен для работы проекта.
  3. View - эта часть обрабатывает HTTP запрос и работает со всеми частями внутри HTTP запроса. Тут мы не работаем с базой данных, только взаимодействуем с данными которые отправил пользователь. На этом уровне работают сериализаторы Django Rest Framework и Django Forms. Тут мы проверяем что данные пользователя в HTTP запросе правильные.
  4. Бизнес логика - класс, функция или другая структура, которая обрабатывает логику. То есть, тут мы проверяем логическую часть запроса, например, можем ли мы создать пользователя с таким username? Не занят ли он? Тут мы отправляем email для авторизации пользователя, и в этом слое мы можем использовать ORM.