Руководство по 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(). Кеширование отключено в режиме отладки.

Продолжение следует…


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.