WSGI
WSGI (англ. Web Server Gateway Interface, произносится виски) — стандарт взаимодействия между Python-программой, выполняющейся на стороне сервера, обычно из каталога cgi-bin, и самим веб-сервером, например, Apache.
Идея
В Python существует большое количество различного рода веб-фреймворков, тулкитов и библиотек. Для каждого из них — собственный метод установки и настройки, они не умеют взаимодействовать между собой. Это может стать проблемой для тех, кто только начинает изучать Python, так как, например, выбор определённого фреймворка может ограничить выбор веб-сервера, и наоборот.
WSGI предоставляет простой и универсальный интерфейс между большинством веб-серверов и веб-приложениями или фреймворками.
Спецификации
По стандарту, WSGI-приложение должно удовлетворять следующим требованиям:
- должно быть вызываемым (callable) объектом
- принимать два параметра:
- словарь переменных окружения (environ)
- обработчик запроса (start_response)
- вызывать обработчик запроса с кодом HTTP-ответа и HTTP-заголовками
- возвращать итерируемый объект с телом ответа
Простейшим примером WSGI-приложения может служить такая функция-генератор:
<source lang="python"> def simplest_wsgi_app(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
yield 'Hello, world!'</source>
Middleware
Помимо приложений и серверов, стандарт дает определение middleware-компоненты, предоставляющие интерфейсы как приложению, так и серверу. То есть для сервера middleware является приложением, а для приложения — сервером. Это позволяет составлять «цепочки» WSGI-совместимых middleware.
Middleware могут брать на себя следующие функции (но не ограничиваются этим):
- обработка сессий
- аутентификация/авторизация
- управление URL (маршрутизация запросов)
- балансировка нагрузки
- пост-обработка выходных данных (например, проверка на валидность)
Совместимы с WSGI
Конечные приложения
Веб-фреймворки и серверы приложений
Внешние ссылки
- PEP 333 — Python Enhancement Proposal, определяющий стандарт интерфейса
- Paste — Библиотека WSGI-компонент
- http://wsgi.org/ — крупнейшая вики об WSGI
- Веб-разработка без фреймворков (часть 1)
- Веб-разработка без фреймворков (остальные части)
| Компьютер | Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |
de:Web Server Gateway Interface en:Web Server Gateway Interface it:Web Server Gateway Interface ja:Web Server Gateway Interface nl:Web Server Gateway Interface uk:WSGI zh:WSGI
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....