Где разместить простые объекты Python в проекте Django?
У меня обычно есть простые объекты Python в моем проекте Django, которые имеют определенные обязанности, такие как наблюдатели, объекты стратегии, фабрики и т. Д. Где я должен разместить их для более организованной файловой структуры? Существует ли в отрасли закономерность для этого?
2 ответа
Здесь нет ничего похожего на "промышленный стандарт". У Django есть некоторые ожидания относительно специфических для django вещей (моделей, пользовательских тегов и фильтров шаблонов, команд управления и т. Д.) И пары соглашений (например, модулей views и urls) - вы можете назвать их технически так, как хотите, но все ожидают, что они быть названы "views" и "urls"), но все остальное - просто простой код на Python и может быть организовано, однако это имеет смысл для вас. Единственными рекомендациями здесь являются очевидные - высокая когезия, низкая связь и т. Д.
Я не могу комментировать, насколько широко это принято или если это правильный путь, лично я следую структуре проекта, изложенной в книге " Два черпака Джанго". Аналогичная настройка описана здесь https://django-project-skeleton.readthedocs.io/en/latest/structure.html как таковая:
[projectname]/ <- project root
├── [projectname]/ <- Django root
│ ├── __init__.py
│ ├── settings/
│ │ ├── common.py
│ │ ├── development.py
│ │ ├── i18n.py
│ │ ├── __init__.py
│ │ └── production.py
│ ├── urls.py
│ └── wsgi.py
├── apps/
│ └── __init__.py
├── configs/
│ ├── apache2_vhost.sample
│ └── README
├── doc/
│ ├── Makefile
│ └── source/
│ └── *snap*
├── manage.py
├── README.rst
├── run/
│ ├── media/
│ │ └── README
│ ├── README
│ └── static/
│ └── README
├── static/
│ └── README
└── templates/
├── base.html
├── core
│ └── login.html
└── README
Если я хочу создать объекты и функции, доступные для всех приложений, я создаю utils
модуль на уровне приложения. Если я создаю служебные функции и объекты, специфичные для приложения, я помещаю utils
модуль в каталоге приложения. Просто личные предпочтения на самом деле.
Надеюсь, поможет.