Подтвердить что ты не робот

Руководство по организации крупных проектов Django

Кто-нибудь может рекомендовать хороший справочник/учебник/статью с советами/рекомендациями по организации и разделению большого проекта Django?

Я ищу советы о том, что делать, когда вам нужно начать факторизацию исходных уникальных файлов (models.py, urls.py, views.py) и работать с более чем несколькими десятками объектов.

4b9b3361

Ответ 1

Каждое "приложение" должно быть маленьким - единственным объектом многократного использования плюс несколько связанных таблиц. У нас есть около 5 плюс/минус 2 таблицы для каждой модели приложения. Большинство наших полдюжины приложений меньше 5 таблиц. В модели есть нулевые таблицы.

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

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

Хорошо, что приложения зависят друг от друга. Однако зависимость должна ограничиваться очевидными вещами, такими как "модели" и "формы". Кроме того, приложения могут зависеть от имен в каждом другом URL. Следовательно, ваш именованный URL должен иметь форму типа "вид приложения", поэтому функция reverse или тег {% url %} могут найти их правильно.

Каждое приложение должно содержать собственные командные команды (обычно через формальную команду, которая может быть найдена django-admin script.

Наконец, все, что более сложное, чем простая модель или форма, которые разделены, вероятно, не принадлежит ни одному из приложений, но должна быть отдельной разделяемой библиотекой. Например, мы используем XLRD, но обертываем его части в нашем собственном классе, чтобы он больше напоминал встроенный модуль csv. Эта оболочка для XLRD не является подходящей частью какого-либо приложения, для нее отдельный модуль, вне приложений Django.

Ответ 2

Я нашел, что полезно взглянуть на большие проекты Django с открытым исходным кодом и принять к сведению, как это работает. На сайте Django есть хороший список проектов с открытым исходным кодом:

http://code.djangoproject.com/wiki/DjangoResources#Open-SourceDjangoprojects

Как и Google (хотя большинство из них - более мелкие теги шаблонов надстроек и Middleware:

http://code.google.com/hosting/search?q=label:django

Конечно, только потому, что один проект делает это одним способом, это не означает, что таким образом это правильный путь (или неправильный путь). Некоторые из этих проектов более успешны, чем другие.

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