Классы нового стиля наследуют от object
и должны быть записаны как таковые в Python 2.2 и далее (т. е. class Classname(object):
вместо class Classname:
). Основное изменение заключается в унификации типов и классов, и хороший побочный эффект этого заключается в том, что он позволяет наследовать от встроенных типов.
Прочтите descrintro для получения более подробной информации .
Лучшее предложение: судите их всех. Это не займет много времени.
Мой фаворит: Jinja2 (милей)
Это имеет достойный синтаксис, может проследить ошибки через него и sandboxable.
При выполнении генерации кода Вы могли бы найти Шестеренка полезный - это специально для генерации кода, вместо того, чтобы быть обычно применимым языком шаблонной обработки.
Самое важное беспокойство - можно ли жить с синтаксисом, которого требуют шаблоны. Второй и третий (в зависимости от Ваших потребностей приложения) была бы скорость и простота распределения.
я посмотрел на всех них, но единственный синтаксис, я мог стоять, был Джинджа . Джинджа имеет преимущество поддержки большого количества конструкций Python, таким образом, очень легко добавить отрывки функциональности к шаблонам по мере необходимости, не кодируя специальные теги. Большая часть того, что требует тегов в других шаблонных системах, обрабатывается макросами в Джиндже.
, Конечно, при поиске чего-то легкого и быстрого трудно биться Python, обрабатывающий API по шаблону на базовом языке.
Если Вы работаете с X ML [HT], одной из основанных на теге систем шаблонной обработки, которые могут уехать, Вы с правильно построенными шаблонами - хорошее перемещение. Я использую PXTL, FWIW. (Это может произвести другие форматы, но если бы Ваш акцент не является XML или HTML, это не был бы разумный выбор.)
у меня есть интенсивная неприязнь к шаблонной обработке систем, которые требуют к “help, Вы разделяете бизнес-логику и presentation” путем ограничения выражений их собственным Небольшим Языком. Они, кажется, не понимают, что там таково как вещь как “presentation logic”, и она может быть иногда сложной достаточно для необходимости в Реальном Языке как Python для выполнения его. Наличие Вас выгоняет Вашу логику представления в приложение с бизнес-логикой, так не победа . Избегайте!
(Ограниченное выражение отдельный подход мини-языка имел некоторый смысл в вЂEL’ JSP, поскольку Java является слишком раздражающе подробным для использования в библиотеке шаблонной обработки. Но у нас есть Python! Это идеально подходит для записи выражений в шаблонах, как это; прерывающая функциональность и то, чтобы заставлять пользователя выучить другой новый язык получают Вас ничто.)
Обновление: за Kid, кажется, следовали Genshi.
я использовал Kid, который является, я думаю одна из более старых систем. Я нашел, что это чрезвычайно твердо, стабильно и надежно. Это основано на теге, таким образом, это хорошо для работы с XML/HTML. Это довольно интересно в том шаблоне функции, сделаны как HTML-атрибуты, не специальные блоки, т.е. {%... %}. Однако некоторые аспекты того (особенно путь это делает, 'включают'), может стать довольно надоедливым. Это также, кажется, не разрабатывается активно или вообще больше.
Это стоит смотреть на то, если Вы хотите что-то, что было вокруг некоторое время и стало довольно стабильным. Если Вы хотите что-то более свежее, я услышал хорошие вещи и о Genshi и о Джиндже.
Мне нравится Clearsilver, потому что он работает с несколькими различными языками, и он строго осуществляет разделение между данными и представлением. Я ранее использовал Гепарда и в то время как это довольно хорошо, мне не нравилось работать с тем, что иногда походило на ограниченную форму Python.
Если Вы хотите очень легкую опцию, попробуйте templete. Это похоже только на 80 строк кода в единственном модуле. Взгляните здесь и здесь (это было опубликовано в блоге). Я думаю, что это - умное и очень сфокусированное решение, если функции достаточны для Вас.