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

Идея

[править | править код]

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

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

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

[править | править код]

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

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

def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/plain')])
    yield b'Hello, World!\n'

Middleware

[править | править код]

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

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

См. также

[править | править код]

Примечания

[править | править код]
  1. "WSGI, Введение", Юревич Юрий. Дата обращения: 15 октября 2016. Архивировано 19 октября 2016 года.
  2. environ variables. Дата обращения: 15 октября 2016. Архивировано 7 июня 2020 года.
  3. start_response. Дата обращения: 15 октября 2016. Архивировано 7 июня 2020 года.

Литература

[править | править код]

Ссылки

[править | править код]


Это заготовка статьи об информационных технологиях и вычислительной технике. Помогите Википедии, дополнив её.Это примечание по возможности следует заменить более точным.