Как написать свой шаблонизатор на питоне?

Недавно прочитал шутку, что каждый питоразработчик начинает знакомство с вебом с написания своего шаблонизатора и иосознал, что я этого не могу придумать, как его написать.

Как правильно парсить шаблоны? Регулярками? А потом мучиться с рекурсивными конструкциями? Написать свои грамматики на каком-нибудь пеге? А это не слишком медленно?

Как подойти к кэшированию? Знаю, что многие php-шаблонизаторы транслируют шаблон в php-код в /tmp, и оттуда собственно и отдают. Насколько это применимо к питону? Или всё держать в памяти? А не толсто ли это?

Получу ли я выигрыш, если шаблонизатор будет написан на Cython? За счет строгой типизации можно получить выигрыш в памяти. Может что-то еще?

И как дополнительный вопрос. Я его врядли буду где использовать, но было бы интересно еще и заинтегрировать его в Django. Что-то не загугливается, как подменить django-шаблонизатор.
  • Вопрос задан
  • 2742 просмотра
Пригласить эксперта
Ответы на вопрос 2
mututunus
@mututunus
Backend developer (Python, Golang)
Посмотрите на реализацию в Django и Jinja.
Использовать кастомные шаблоны в Django можно через TEMPLATE_LOADERS (пример https://github.com/yuchant/django-jinja2).
Ответ написан
@asd111
Регулярки + eval
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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