Разделение просмотров приложения Django - PullRequest
16 голосов
/ 30 марта 2009

Если файл app / views.py становится очень большим, я должен отделить его? Если это так, каков наилучший способ сделать это?

Ответы [ 4 ]

25 голосов
/ 30 марта 2009

Некоторые разработчики делают свои представления python-пакетом вместо модуля. Это просто означает создание в вашем приложении каталога с именем views и размещение каждого представления в отдельном модуле (файле) в этом пакете.

Затем вы создаете файл __init__.py (что делает его пакетом). Этот файл может быть пустым или импортировать все модули представления в собственное пространство имен.

Если он пуст, вам придется импортировать каждый необходимый вам вид напрямую, иначе вы можете импортировать его так же, как если бы это был модуль views.py.

12 голосов
/ 30 марта 2009

Не существует универсального лучшего способа . Но есть правильный путь для вашей ситуации.

  • помещает представления в свои собственные файлы и импортирует их в вашем представлении. Это хорошо, просто посмотреть, как это работает
  • создать отдельное приложение внутри проекта для поддержки набора представлений
  • создайте свои общие представления , которые разделяют представления, общие для большинства ваших приложений

Просто в качестве исходного примера: Я рекомендую вам начать с модели и потренироваться:

  • сколько сколько моделей у вас есть?
  • Они на самом деле все относятся или их можно сгруппировать?
  • если можно сгруппировать разбить приложение на два приложения
  • так что вы также разделите взгляды
  • определяет, какие функции вида похожи, и делает их универсальными .
2 голосов
/ 30 марта 2009

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

Импортируя эти виды непосредственно в основной файл views.py, он позволяет людям, не знакомым с вашим соглашением, найти, где находится.

views/object_view.py
1 голос
/ 30 марта 2009

В идеальном мире вам не нужно этого делать. Вместо этого попытайтесь реорганизовать ваш код в различные приложения django для каждой подзадачи, которая нужна вашему проекту. Таким образом, вы можете разделить ваш проект еще лучше, чем если бы вы только разбили файл views.py.

Чтобы получить советы о том, как разделить ваш проект на разные приложения, я рекомендую прочитать Практические проекты Django Джеймса Беннетта , которые я сейчас перечитываю:)

...