Таня Шлюссер - Автостопом по Python
- Название:Автостопом по Python
- Автор:
- Жанр:
- Издательство:Питер
- Год:2017
- Город:СПб.
- ISBN:978-5-496-03023-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Таня Шлюссер - Автостопом по Python краткое содержание
и содержит наработки многочисленных профессионалов и энтузиастов, знающих, что такое Python, и чего вы от него хотите. Проверенные методы и новейшие приемы, собранные в этой книге, помогут вам стать профессиональным Python-программистом и во всеоружии встретить наступающую эпоху Python 3.
Автостопом по Python - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
В этом разделе мы рассмотрим веб-фреймворки, написанные на Python, их систему шаблонов, серверы, с которыми они взаимодействуют, а также платформы, на которых они запускаются.
Веб-фреймворки/микрофреймворки
Веб-фреймворк состоит из набора библиотек и основного обработчика, внутри которого вы можете строить собственный код для реализации веб-приложения (то есть интерактивного сайта, предоставляющего его клиенту интерфейс к коду, запущенному на сервере). Большая часть веб-фреймворков включает в себя шаблоны и вспомогательные программы, позволяющие выполнить как минимум следующий действия.
• Маршрутизация URL. Соотнесение входящего запроса HTTP с соответствующей функцией Python (или вызываемой функцией).
• Обработка объектов Request и Response. Инкапсуляция информации, полученной или отправленной браузеру пользователя.
• Шаблоны. Внедрение переменных Python в шаблоны HTML или другую форму вывода информации, что позволяет программистам отделить логику приложения (в Python) от макета (в шаблоне).
• Веб-сервис для отладки. Запуск миниатюрного сервера HTTP на машинах разработчиков, позволяющего ускорить разработку; зачастую код на серверной стороне автоматически перезагружается при обновлении файлов.
Вам не нужно писать код вокруг фреймворка. Он изначально должен предоставлять все, что вам требуется, при этом функциональность должна быть протестирована другими разработчиками, поэтому, если вы все еще не можете найти то, что вам нужно, продолжайте исследовать другие доступные фреймворки (например, Bottle, Web2Py, CherryPy). Технический редактор также отметил, что мы должны упомянуть Falcon ( http://falconframework.org/) — фреймворк, предназначенный для сборки RESTful API (но не для работы с HTML).
Все библиотеки, перечисленные в табл. 7.3, могут быть установлены с помощью команды pip:
$ pip install Django
$ pip install Flask
$ pip install tornado
$ pip install pyramid
Библиотека Python | Лицензия | Причины использовать |
---|---|---|
Django | Лицензия BSD | Предоставляет структуру — в основном заранее созданный сайт, где вы разрабатываете макет и данные/логику. Автоматически генерирует административный веб-интерфейс, где непрограммисты могут добавлять или удалять данные (например, новостные статьи). |
Поставляется вместе с инструментом для объектно-реляционного отображения (object-relational mapping, ORM) | ||
Flask | Лицензия BSD | Позволяет полностью контролировать все, что находится у вас в стеке. Предоставляет элегантные декораторы, которые добавляют маршрутизацию URL для любой выбранной вами функции. Позволяет вам отказаться от структуры, предоставленной Django или Pyramid |
Tornado | Лицензия Apache 2.0 | Предоставляет отличную функциональность по обработке событий — Tornado использует собственный сервер HTTP. Предоставляет способ обработать множество WebSockets (полнодуплексная, устойчивая коммуникация с помощью TCP*) или других долгоиграющих соединений сразу после установки |
Pyramid | Модифицированная лицензия BSD | Предоставляет заранее собранную структуру, которая называется временной платформой, но в меньшей степени, чем Django, позволяет использовать любой интерфейс базы данных или библиотеку шаблонов. Основан на популярном фреймворке Zope и на Pylons |
* Transmission Control Protocol (TCP) — стандартный протокол, который определяет способ, с помощью которого два компьютера устанавливают соединение друг с другом.
В следующих разделах приведена более подробная информация о веб-фреймворках из табл. 7.3.
Django
Django ( http://www.djangoproject.com/) — это готовый к работе веб-фреймворк. Отличный выбор для тех, кто создает сайты, ориентированные на содержимое. Предоставляя множество вспомогательных программ и шаблонов сразу после установки, Django позволяет создавать сложные веб-приложения, работающие с базами данных.
У Django имеется крупное и активное сообщество. Многие их модули, которые можно использовать повторно ( http://djangopackages.com/), вы можете встроить в свой проект или настроить так, как вам нужно.
Проводятся ежегодные конференции в Соединенных Штатах (http://djangocon.us/) и Европе ( http://djangocon.eu/), посвященные Django, — большая часть веб-приложений Python сегодня создается с помощью Django.
Flask
Flask ( http://flask.pocoo.org/) — это микрофреймворк для Python. Отлично подойдет для сборки небольших приложений, API и веб-сервисов. Вместо предоставления всех инструментов, которые теоретически могут понадобиться, во Flask реализованы самые распространенные компоненты фреймворка для создания веб-приложений вроде маршрутизации URL, объекты запросов и ответов HTTP, а также шаблоны. Создание приложения с помощью Flask похоже на написание стандартного модуля Python, только к некоторым функциям прикреплены маршруты (с применением декоратора, как это показано в следующем фрагменте кода). Выглядит красиво:
@app.route('/deep-thought')
def answer_the_question():
return 'The answer is 42.'
Если вы используете Flask, ответственность за выбор других компонентов приложения (если таковые нужны) ложится на вас. Например, доступ к базам данных или генерация/проверка форм не встроены во Flask (поскольку многим веб-разработчикам эта функциональность не нужна). Если вам это требуется, существует множество доступных расширений ( http://flask.pocoo.org/extensions/) вроде SQLAlchemy ( http://flask-sqlalchemy.pocoo.org/) для баз данных, pyMongo ( https://docs.mongodb.org/getting-started/python/) для MongoDB и WTForms ( https://flask-wtf.readthedocs.org/) для работы с формами.
Flask является выбором по умолчанию для любого веб-приложения, которое не подходит для заранее созданных временных платформ от Django. Попробуйте запустить эти примеры приложений для Flask ( https://github.com/pallets/flask/tree/master/examples), чтобы ознакомиться с фреймворком. Если хотите запустить несколько приложений (по умолчанию для Django), применяйте инструмент для планирования ( http://bit.ly/application-dispatching). Если желаете дублировать наборы подстраниц внутри приложения, используйте Flask’s Blueprints («Эскизы Flask») ( http://flask.pocoo.org/docs/0.10/blueprints/).
Tornado
Tornado ( http://www.tornadoweb.org/) — это асинхронный (управляемый событиями и неблокирующий, как Node.js ( https://nodejs.org/en/)) веб-фреймворк для Python, который имеет собственный цикл событий [87] Он был вдохновлен веб-сервером проекта Twisted ( http://twistedmatrix.com/trac/wiki/TwistedWeb ), который является частью тулкита Tornado для работы с сетями. Если вы хотите воспользоваться функциональностью, которой нет в Tornado, попробуйте поискать ее в Twisted. Но предупреждаем: новичкам трудно освоить Twisted.
. Это позволяет нативно поддерживать, например, протокол коммуникации WebSockets ( http://bit.ly/websockets-api). В отличие от других фреймворков, показанных в этом разделе, Tornado не является приложением WSGI ( http://www.tornadoweb.org/en/stable/wsgi.html). Его можно запустить как приложение или сервер WSGI с помощью модуля tornado.wsgi, но даже его авторы спросят: «А в чем смысл?» [88] На самом деле в документации относительно WSGI сказано следующее: «Используйте WSGIContainer только в том случае, когда преимущества объединения Tornado и WSGI в одном процессе перекрывают сниженную масштабируемость».
, поскольку WSGI — это синхронный интерфейс, а Tornado — асинхронный фреймворк.
Интервал:
Закладка: