Есть ли инструмент для визуализации структуры проекта / потока информации Django? - PullRequest
8 голосов
/ 10 февраля 2011

Я хотел бы иметь возможность просматривать структуру моего проекта Django, то есть какие URL-адреса указывают на какие представления, какие представления указывают на какие шаблоны, какие файлы CSS включены в какие шаблоны и т. Д.

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

  1. URL-адреса и просмотры;
  2. Представления и шаблоны;
  3. Шаблоны и другие шаблоны (через {% extends %}, {% include %} и пользовательские теги шаблонов);
  4. Шаблоны и статические файлы (css, js, images).

Есть ли?

1 Ответ

4 голосов
/ 10 февраля 2011

Невозможно создать инструменты, которые вы ищете, которые бы хорошо работали на практике. Джанго не принуждает вас к какой-либо структуре. Инструмент можно заставить работать только со строгой структурой. Также django позволяет в полной мере воспользоваться динамической природой python. Слишком сложно создавать инструменты, которые могли бы понять динамику вашего проекта.

Несколько примеров:

  • представления могут быть методами, сгенерированными фабричными методами.

  • представление может отображать различные шаблоны в разных ситуациях.

  • URL могут генерироваться динамически

  • Можно использовать пользовательское восстановление URL

  • Переменная может использоваться в теге {% extend %}. Допустим, один базовый шаблон для аутентифицированного пользователя, а другой - для анонимного.

Инструменты, которые дают вам много визуальной информации о проекте, являются общими для мира Java, но не для Python.

Одним из больших преимуществ python является то, что он позволяет быстро писать читаемый код. Обычно хорошо написанный и хорошо структурированный код довольно хорошо объясняет себя без дополнительных инструментов.

Чтобы упростить процесс поиска шаблонов / представлений, вы должны иметь хорошую структуру своего кода и, возможно, придумать некоторые соглашения об именах на уровне проекта для представлений / шаблонов / URL-адресов.

...