Читаем Автостопом по Python полностью

Мы рекомендуем выбирать Jinja2 (http://jinja.pocoo.org/) в качестве библиотеки шаблонов для новых веб-приложений Python. Используется в качестве движка по умолчанию в Flask и генераторе документации для Python Sphinx (http://www.sphinx-doc.org/), может применяться в Django, Pyramid и Tornado. Она работает с основанным на тексте языком шаблонов, поэтому подойдет для генерации любой разметки, а не только HTML.

Позволяет настраивать фильтры, теги, тесты и глобальные переменные. Предоставляет возможность добавлять логику в шаблоны, что сокращает объемы кода.

Рассмотрим важные теги Jinja2:

{# Это комментарий, он выделяется решеткой и фигурными скобками. #}

{# Так можно добавить переменную: #}

{{title}}

{# Так можно определить именованный блок, который можно заменить #}

{# на шаблон-потомок. #}

{% block head %}

This is the default heading.

{% endblock %}

{# Так можно выполнить итерирование: #}

{% for item in list %}

  • {{ item }}
  • {% endfor %}

    Рассмотрим пример сайта в комбинации с веб-сервером Tornado, описанным в подразделе «Tornado» текущего раздела:

    # импортируем Jinja2

    from jinja2 import Environment, FileSystemLoader

    # импортируем Tornado

    import tornado.ioloop

    import tornado.web

    # Загружаем файл шаблона templates/site.html

    TEMPLATE_FILE = "site.html"

    templateLoader = FileSystemLoader(searchpath="templates/")

    templateEnv = Environment(loader=templateLoader)

    template = templateEnv.get_template(TEMPLATE_FILE)

    # Список популярных фильмов

    movie_list = [

    ····[1,"The Hitchhiker's Guide to the Galaxy"],

    ····[2,"Back to the Future"],

    ····[3,"The Matrix"]

    ]

    # Метод template.render() возвращает строку, содержащую отрисованный HTML

    html_output = template.render(list=movie_list, title="My favorite movies")

    # Обработчик для основной страницы

    class MainHandler(tornado.web.RequestHandler):

    ····def get(self):

    ····# Возвращает отрисованную строку шаблона запросу браузера

    ········self.write(html_output)

    # Присваиваем обработчик на сервер (127.0.0.1:PORT/)

    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">

    ····

    ····{{title}} — My Web Page

    ····{# В следующей строке будет добавлено содержимое шаблона site.html #}

    ····{% block content %}{% endblock %}

    ····{% block footer %}

    ····© Copyright 2013 by http://domain.invalid/">you>.

    ····{% endblock %}

    Перейти на страницу:

    Все книги серии Бестселлеры O'Reilly

    Искусство управления IT-проектами
    Искусство управления IT-проектами

    В отличие от множества трудов, посвященных руководству проектами и командами, в этой книге не проповедуются никакие новые учения и не превозносятся великие теории. Скотт Беркун считает залогом успеха практику и разнообразие подходов. В книге описываются основные сложности и проблемные ситуации, возникающие в работе менеджера проекта, даны рекомендации по выходу из них.Издание предназначено не только для лидеров команд и менеджеров высшего звена, но и для программистов, тестеров и других исполнителей конкретных проектных заданий. Также оно будет полезно студентам, изучающим бизнес-менеджмент, проектирование изделий или программную инженерию.Текст нового издания значительно переработан автором с целью добиться большей ясности, кроме того, книга дополнена новым приложением и более чем 120 практическими упражнениями.

    Скотт Беркун

    Деловая литература
    iOS. Приемы программирования
    iOS. Приемы программирования

    Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

    Вандад Нахавандипур

    Программирование, программы, базы данных / Программирование / Книги по IT

    Похожие книги

    1С: Бухгалтерия 8 с нуля
    1С: Бухгалтерия 8 с нуля

    Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

    Алексей Анатольевич Гладкий

    Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
    1С: Управление торговлей 8.2
    1С: Управление торговлей 8.2

    Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

    Алексей Анатольевич Гладкий

    Финансы / Программирование, программы, базы данных