Организация шаблонов в проекте Django - PullRequest
0 голосов
/ 10 октября 2018

Я пытаюсь использовать «специфичный для приложения» подход к организации различных приложений django.Например:

- app2
    - __init__.py
    - urls.py
    - views.py
    - templates/
- app2
    - __init__.py
    - urls.py
    - views.py
    - templates/
- manage.py
- settings.py
- urls.py

Одна проблема, с которой я столкнулся, заключается в том, где разместить базовые шаблоны, от которых все наследуется?Например, в верхней части всех моих шаблонов у меня есть {% includes "base.html" %}, но если я делаю вышеупомянутое, я не вижу, как я мог бы сделать это логичным способом.

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Этот вопрос иногда закрывается как основа мнения;В любом случае я дам свои два цента, потому что я думаю, что это правильный вопрос.

Я использую следующую структуру (успешно применяется в некоторых проектах Django, в которых в каждом проекте содержится менее 10 приложений):

На первом изображении вы можете видеть, что для этого проекта я запускал каждое имя приложения с префиксом app_, но это только внутреннее соглашение.Примечание: папка .venv содержит виртуальную среду Python, и эта папка не контролируется версией (другие папки являются частью git репо).

enter image description here

На втором изображении вы видите, что у меня есть папка project_config, которая содержит настройки, базовые URL, промежуточное ПО, маршрутизаторы и другие вещи.Примечание: Django docs обычно называют эту папку так же, как проект (в данном случае это будет tb_system_01), но я считаю имя project_config более значимым для моих случаев использования).

Тогда я обычноиспользуйте папки project_config/static и project_config/templates для хранения всего, что является общим для приложений.Здесь также приведены мои базовые шаблоны, которые будут моим ответом на конкретный вопрос, который вы задали.Django docs иногда предлагает использовать папку верхнего уровня с именем templates, но для моих случаев использования я нашел более организованным, чтобы эта папка была внутри project_config/.

enter image description here

0 голосов
/ 10 октября 2018

Во-первых, вы хотите, чтобы для шаблонов для каждого приложения вы использовали "templates / appXXX /" (по крайней мере, если вы хотите использовать "appXXX / template.html").

Второй момент: как вы только что узнали, не все шаблоны (и не весь код FWIW) строго связаны с одним данным приложением.В какой-то момент вам нужно объединить свои приложения для создания полноценного веб-сайта / веб-приложения, и шаблоны - особенно базовый шаблон - являются частью уровня «интеграции» проекта.IOW: просто создайте каталог templates в корне вашего проекта и поместите туда свой базовый шаблон.Это то, что все ожидают в любом случае ...

...