Используя текст отличаются, повредится на нетривиальных документах. В зависимости от то, что Вы думаете, интуитивно, XML отличается, вероятно, генерирует diffs, которые не очень хороши для текста с разметкой. AFAIK, DaisyDiff является единственной библиотекой, специализированной на HTML. Это работает отлично для подмножества HTML.
Из книги Django, глава 4 :
Если вы не можете придумать очевидное место для размещения своих шаблонов рекомендуем создание каталога шаблонов в ваш проект Django (т. е. внутри каталог mysite, который вы создали в Глава 2, если вы следовали вместе с нашими примерами).
Это именно то, что я делаю, и у меня отлично сработало.
Моя структура каталогов выглядит примерно так:
/ media
для всех моих CSS / JS / изображений etc
/ templates
для моих шаблонов
/ projectname
для основного кода проекта (т.е. кода Python)
Вы также можете рассмотреть возможность размещения ваших шаблонов в базе данных, используя django-dbtemplates . Он также настроен для кеширования и приложение django-reversion, которое помогает вам хранить старые версии ваших шаблонов.
Он работает довольно хорошо, но я бы предпочел немного больше гибкости при импорте / синхронизации в / из файловой системы. сторона.
[редактировать: 20 августа 2018 г. - этот репозиторий недоступен, репозиторий с таким же именем доступен по адресу https://github.com/jazzband/django-dbtemplates и был обновлен 8 месяцев назад. Я больше не использую Django, поэтому не могу за это поручиться.]
Это больше личный выбор на уровне проекта. Если вы говорите о приложениях, которые должны быть подключаемыми, то каталог шаблонов в вашем приложении - это место, где они используются по умолчанию. Но в рамках всего проекта это то, что вам лучше всего подходит.
Помещено в
для шаблонов для конкретных приложений, чтобы помочь сделать приложение повторно используемым в другом месте.
Для общих "глобальных" шаблонов я помещаю их в