Лучшая библиотека шаблонов Python для облегчения генерации кода [закрыто]

Классы нового стиля наследуют от object и должны быть записаны как таковые в Python 2.2 и далее (т. е. class Classname(object): вместо class Classname:). Основное изменение заключается в унификации типов и классов, и хороший побочный эффект этого заключается в том, что он позволяет наследовать от встроенных типов.

Прочтите descrintro для получения более подробной информации .

30
задан Tshepang 23 March 2013 в 12:54
поделиться

7 ответов

Лучшее предложение: судите их всех. Это не займет много времени.

Мой фаворит: Jinja2 (милей)

Это имеет достойный синтаксис, может проследить ошибки через него и sandboxable.

29
ответ дан Ali Afshar 23 March 2013 в 12:54
поделиться
  • 1
    @Danack не, команда обновления установит dev зависимости по умолчанию – Wouter J 11 July 2013 в 06:12

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

16
ответ дан babbageclunk 23 March 2013 в 12:54
поделиться
  • 1
    @WouterJ Er, похож, я должен выполнить самообновление компоновщика снова. – Danack 11 July 2013 в 20:40

Самое важное беспокойство - можно ли жить с синтаксисом, которого требуют шаблоны. Второй и третий (в зависимости от Ваших потребностей приложения) была бы скорость и простота распределения.

я посмотрел на всех них, но единственный синтаксис, я мог стоять, был Джинджа . Джинджа имеет преимущество поддержки большого количества конструкций Python, таким образом, очень легко добавить отрывки функциональности к шаблонам по мере необходимости, не кодируя специальные теги. Большая часть того, что требует тегов в других шаблонных системах, обрабатывается макросами в Джиндже.

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

10
ответ дан Chris B. 23 March 2013 в 12:54
поделиться

Если Вы работаете с X ML [HT], одной из основанных на теге систем шаблонной обработки, которые могут уехать, Вы с правильно построенными шаблонами - хорошее перемещение. Я использую PXTL, FWIW. (Это может произвести другие форматы, но если бы Ваш акцент не является XML или HTML, это не был бы разумный выбор.)

у меня есть интенсивная неприязнь к шаблонной обработке систем, которые требуют к “help, Вы разделяете бизнес-логику и presentation” путем ограничения выражений их собственным Небольшим Языком. Они, кажется, не понимают, что там таково как вещь как “presentation logic”, и она может быть иногда сложной достаточно для необходимости в Реальном Языке как Python для выполнения его. Наличие Вас выгоняет Вашу логику представления в приложение с бизнес-логикой, так не победа . Избегайте!

(Ограниченное выражение отдельный подход мини-языка имел некоторый смысл в ‘EL’ JSP, поскольку Java является слишком раздражающе подробным для использования в библиотеке шаблонной обработки. Но у нас есть Python! Это идеально подходит для записи выражений в шаблонах, как это; прерывающая функциональность и то, чтобы заставлять пользователя выучить другой новый язык получают Вас ничто.)

1
ответ дан bobince 23 March 2013 в 12:54
поделиться
  • 1
    Конечно, если you' ре с помощью расположения проекта прежней версии, команда была бы чем-то как./vendor/bin/phpunit src/AppBundle/Tests – Acyra 9 September 2017 в 23:08

Обновление: за Kid, кажется, следовали Genshi.

я использовал Kid, который является, я думаю одна из более старых систем. Я нашел, что это чрезвычайно твердо, стабильно и надежно. Это основано на теге, таким образом, это хорошо для работы с XML/HTML. Это довольно интересно в том шаблоне функции, сделаны как HTML-атрибуты, не специальные блоки, т.е. {%... %}. Однако некоторые аспекты того (особенно путь это делает, 'включают'), может стать довольно надоедливым. Это также, кажется, не разрабатывается активно или вообще больше.

Это стоит смотреть на то, если Вы хотите что-то, что было вокруг некоторое время и стало довольно стабильным. Если Вы хотите что-то более свежее, я услышал хорошие вещи и о Genshi и о Джиндже.

2
ответ дан dimo414 23 March 2013 в 12:54
поделиться

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

1
ответ дан David Z 23 March 2013 в 12:54
поделиться

Если Вы хотите очень легкую опцию, попробуйте templete. Это похоже только на 80 строк кода в единственном модуле. Взгляните здесь и здесь (это было опубликовано в блоге). Я думаю, что это - умное и очень сфокусированное решение, если функции достаточны для Вас.

1
ответ дан nikow 27 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: