Руководство по Python Bottle (Перевод) Часть 6 - Templates (о Шаблонах)
В предыдущей части (Руководство по Python Bottle (Перевод) Часть 5 — Request Data (данные в запросе)) мы рассмотрели основные аспекты относящиеся к передаваемым данным в запросах, в этой части мы вкратце рассмотрим использование шаблонов.
Bottle имеет быстрый и мощный встроенный механизм шаблонов, который называется SimpleTemplate Engine. Для рендеринга шаблона вы можете использовать функцию template() или декоратор view(). Все, что вам нужно сделать, это предоставить имя шаблона и переменные, которые вы хотите передать шаблону в качестве аргументов. Вот простой пример того, как обратиться к шаблону:
@route('/hello')
@route('/hello/<name>')
def hello(name='World'):
return template('hello_template', name=name)
Данный код загрузит файл шаблона hello_template.tpl и отобразит его с установленной переменной name. Bottle будет искать шаблоны в папке ./views/ или в любой папке, указанной в списке bottle.TEMPLATE_PATH.
Декоратор view() позволяет вам возвращать словарь с переменными шаблона вместо вызова template():
@route('/hello')
@route('/hello/<name>')
@view('hello_template')
def hello(name='World'):
return dict(name=name)
Синтаксис (Syntax)
Синтаксис шаблона представляет собой очень небольшую обертку вокруг языка Python. Его основная цель — обеспечить правильное отступление блоков, чтобы вы могли отформатировать шаблон, не беспокоясь об отступах. Полное описание синтаксиса: SimpleTemplate Engine (На английском, возможно в будущем переведу. :) )
Вот пример шаблона:
%if name == 'Мир':
<h1>Привет {{name}}!</h1>
<p>Это тест.</p>
%else:
<h1>Привет {{name.title()}}!</h1>
<p>Как дела?</p>
%end
Кэширование (Caching)
Шаблоны кэшируются в памяти после компиляции. Изменения, внесенные в файлы шаблона, не будут влиять, пока вы не очистите кэш шаблона. Для этого необходимо вызвать bottle.TEMPLATES.clear(). Кеширование отключено в режиме отладки.
Продолжение следует…