Лучший подход к хранению представлений API и представлений шаблонов в Django

Я ищу лучший подход/практику для хранения представлений API и представлений шаблонов в Django. Создавать отдельное приложение под названием API/ или хранить все представления вместе в файле views.py? Есть также другой подход, который создает каталог внутри основного приложения под названием views/, который включает views/api.py и views/visual.py и просто удаляет традиционный views.py. Что лучше?

Думаю, это зависит от проекта.

Если API будет большой частью, то приложение имеет смысл.

Лично мне нравится директория views, так как вы можете разделить представления на подразделы, если того требует проект.

Следуйте способу, который я видел во многих других проектах, структурированному так же, как тот, который мы используем в нашей компании.

your_app/
├── __init__.py
├── api/
│ ├── __init__.py
│ ├── serializers.py
│ └── viewsets.py
├── apps.py
├── migrations/
├── templates/
├── admin.py
├── models.py
├── tests.py
├── views.py

Нет смысла добавлять viewsets и serializers вне одного приложения. Это только запутает вашу команду. Тем не менее, если вы создаете Mixins и вспомогательные функции, которые могут использоваться в других приложениях, то лучше всего использовать их, например, в основном приложении.

Лучший способ понять лучшие практики - посмотреть на репозиторий django на github и увидеть, как они структурируют свои папки. Также почитайте книгу Two scoops of Django там автор лучше объясняет, как лучше структурировать django проект.

И последнее, но не менее важное: если эти функции принадлежат только этому приложению, оставьте их там, где они должны быть. Модульность позволит легко исправить будущие проблемы и даже облегчит задачу, если однажды это приложение может стать пакетом.

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