Где разместить простые объекты 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 модуль в каталоге приложения. Просто личные предпочтения на самом деле.

Надеюсь, поможет.

Другие вопросы по тегам