При создании безголового веб-сайта в Django файлы становятся длинными и нечитаемыми, есть ли какой-либо лучший и масштабируемый подход? [закрыто]

Я работаю над проектом безголового веб-сайта, где я реализую серверную часть через django, используя django-rest-фреймворки, до сих пор я использовал эту структуру

my_project/
├── manage.py
├── my_project/
│   ├── __init__.py
│   ├── asgi.py
│   ├─ settings.py
│   ├─ urls.py
│   ├── wsgi.py
├── auth/
    ├── migrations/
    │   └── __init__.py
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── models.py
    ├── tests.py
    ├── urls.py
    ├── signals.py
    ├── serializers.py
    ├── utils.py
    └── views.py

Но проблема, с которой я столкнулся, заключается в том, что после того, как у меня было так много классов APIView для входа в систему, регистрации, аутентификации, Googleauth и т.д., views.py файл становится все длиннее и нечитабельным.

Поэтому я подумываю перейти на эту архитектуру (вдохновленную react js, где мы можем использовать весь html, tailwind и js внутри одного компонента.jsx).

my_project/
├── manage.py
├── my_project/
│   ├── __init__.py
│   ├── asgi.py
│   ├─ settings.py
│   ├─ urls.py
│   ├── wsgi.py
├── auth/
    ├── migrations/
    │   └── __init__.py
    ├── api/
    │   └── views/
              ├── __init__.py
    │         ├── login.py
    │         └── register.py
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── models.py
    ├── tests.py
    └── urls.py

Где для логина функциональности API у меня будет login.py , и внутри него я буду хранить:

  • Его класс сериализатора для проверки.
  • Его служебный класс для дополнительных функций.
  • Его Класс аутентификации для обеспечения доступа к токенам jwt и обновления токенов.
  • и его класс APIView.

и аналогично в register.py У меня будут отдельные сериализаторы, утилиты и представление api в одном файле.

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

Подойдет ли это для реализации такой структуры? И если нет, то может ли кто-нибудь предложить мне подход, который может решить эту проблему (и который будет принят сообществом django)?

Спасибо

Вернуться на верх