Ненадежные шаблоны в Python - что такое безопасная библиотека для использования? - PullRequest
0 голосов
/ 11 ноября 2009

Я создаю библиотеку, которая будет использоваться в нескольких приложениях Python. Он получает многоязычные шаблоны электронной почты из RMDBS, а затем будет произведена замена переменной для шаблона в Python до отправки сообщения электронной почты.

В дополнение к замене переменных мне нужна библиотека шаблонов для поддержки операторов if, elif и для шаблонов.

Я использую Mako для большинства своих проектов, а также посмотрел на Tempita, поскольку он не предоставляет много функций, которые мне не нужны.

Меня беспокоит проблема с ненадежным выполнением кода. Может ли кто-нибудь указать мне на шаблонное решение для Python, которое либо не поддерживает выполнение кода, либо позволит мне отключить его?

Ответы [ 2 ]

4 голосов
/ 11 ноября 2009

Из книги Джанго :

По этой причине невозможно напрямую вызывать код Python в шаблонах Django. Все «программирование» принципиально ограничено областью действия тегов шаблонов. Можно написать пользовательские теги шаблонов, которые выполняют произвольные действия, но готовые теги шаблонов Django преднамеренно не допускают выполнения произвольного кода Python.

Попробуйте Шаблоны Django Попробуйте. Настроить за пределами приложения Django немного сложно - что-то связанное с DJANGO_SETTINGS_MODULE, поиск по нему - но можно доверять.

3 голосов
/ 11 ноября 2009

Вы уже проверили Jinja2 ? Это в значительной степени то, о чем вы говорите, и это отличное сочетание мощных функций, при этом все просто и не дает дизайнеру слишком большой мощности. :)

Если вы использовали систему шаблонов Django, она очень похожа (если не основана на?) Jinja.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...