application = tornado.web.Application([
····(r"/", MainHandler),
])
PORT=8884
if __name__ == "__main__":
····# Настраиваем сервер
····application.listen(PORT)
····tornado.ioloop.IOLoop.instance(). start()
Файл base.html может быть использован в качестве основы для всех страниц сайта. В этом примере они могли бы быть реализованы в блоке content (в данный момент пуст):
http://www.w3.org/1999/xhtml">
····
····
····{# В следующей строке будет добавлено содержимое шаблона site.html #}
····{% block content %}{% endblock %}
В следующем примере кода показана страница сайта (site.html), которая расширяет шаблон base.html. Блок content будет встроен автоматически в соответствующий блок base.html:
{% block content %}
····
····
········
{{title}}
········
{{ list_title }}
········
····
····
{% endblock %}
Chameleon Page Templates (файлы с расширением *.pt) ( https://chameleon.readthedocs.org/) — это реализация в движке шаблонов синтаксисов Template Attribute Language (TAL) ( http://en.wikipedia.org/wiki/Template_Attribute_Language), TAL Expression Syntax (TALES) ( http://bit.ly/expression-tales) и Macro Expansion TAL (Metal) ( http://bit.ly/macros-metal) для HTML/XML. Chameleon анализирует Page Templates и «компилирует» их в байт-код Python для повышения скорости загрузки.
Доступен в Python 2.5 и выше (включая 3.x и PyPy) и является одним из двух движков для отрисовки, используемых Pyramid по умолчанию (см. подробнее подраздел «Pyramid» ранее в этом разделе). (Вторым является Mako, описанный в следующем подразделе.)
Page Templates добавляет специальный элемент attributes и текстовую разметку для вашего XML-документа: набор простых языковых конструкций позволяет управлять потоком документов, повторением элементов, заменой текста и переводом. Благодаря синтаксису, основанному на атрибутах, неотрисованные шаблоны страниц представляют собой корректный HTML, могут быть просмотрены в браузере и даже отредактированы с помощью редакторов WYSIWYG (What you see is what you get — «Что видишь, то и получаешь»). Это позволяет упростить взаимодействие с дизайнерами, а также прототипирование с использованием статических файлов. Основы языка TAL легко освоить с помощью примера:
··
··
Hello, World!
····
······
········
······
····
··
Шаблон для вставки текста достаточно распространен. Если вам не нужна стопроцентная корректность для неотрисованных шаблонов, вы можете заменить его на более сжатый и читаемый синтаксис с помощью шаблона ${expression}, как показано далее:
··
··
Hello, ${world}!
····
······
········
······
····
············${row.capitalize()} ${col}
········
|
··
Но помните, что полный синтаксис Default Text также позволяет использовать содержимое по умолчанию в неотрисованном шаблоне.
Chameleon не очень популярен в местах, где уже пользуются Pyramid.
Mako ( http://www.makotemplates.org/) — это язык шаблонов, который компилируется в Python для максимальной производительности. Его синтаксис и API заимствованы из других языков шаблонов вроде Django и Jinja2. Этот язык шаблонов по умолчанию включается в веб-фреймворке Pyramid (рассматривается в подразделе «Pyramid» текущего раздела). Пример шаблона Mako выглядит так:
····% for row in rows:
········${makerow(row)}
····% endfor