WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте

WSGI (англ. Web Server Gateway Interface) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, и самим веб-сервером[1], например Apache.

Идея

В Python существует большое количество различного рода веб-фреймворков (каркасов), тулкитов и библиотек. Для каждого из них — собственный метод установки и настройки, они не умеют взаимодействовать между собой. Это может стать затруднением для тех, кто только начинает изучать Python, так как, например, выбор определённого фреймворка может ограничить выбор веб-сервера, и наоборот.

WSGI предоставляет простой и универсальный интерфейс между большинством веб-серверов и веб-приложениями или фреймворками.

Спецификации

По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:

  • должно быть вызываемым (callable) объектом (обычно это функция или метод)
  • принимать два параметра:
    • словарь переменных окружения (environ)[2]
    • обработчик запроса (start_response)[3]
  • вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками
  • возвращать итерируемый объект с телом ответа

Простейшим примером WSGI-приложения может служить такая функция-генератор:

 def simplest_wsgi_app(environ, start_response):
     start_response('200 OK', [('Content-Type', 'text/plain')])
     yield 'Hello, world!'

Middleware

Помимо приложений и серверов, стандарт дает определение middleware-компонентов, предоставляющих интерфейсы как приложению, так и серверу. То есть для сервера middleware является приложением, а для приложения — сервером. Это позволяет составлять «цепочки» WSGI-совместимых middleware. Middleware - простая обертка над объектом приложения, реализовать её можно через замыкание.[4]

Middleware могут брать на себя следующие функции (но не ограничиваются этим):

Совместимы с WSGI

Конечные приложения

Веб-фреймворки и серверы приложений

Библиотеки

  • Python Paste — библиотека компонент для работы с WSGI-приложениями

Аналоги

См. также

Примечания

Ссылки

  • PEP 3333 — Python Enhancement Proposal, определяющий стандарт интерфейса
  • wsgi.org — крупнейшая вики об WSGI

Литература

  • James Gardner. The Definitive Guide to Pylons. — Apress, 2008. — 568 с. — P. 369-388. ISBN 9781590599341.

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии