WSGI

Материал из Seo Wiki - Поисковая Оптимизация и Программирование

Перейти к: навигация, поиск

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

Содержание

Идея

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

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

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

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

  • должно быть вызываемым (callable) объектом
  • принимать два параметра:
    • словарь переменных окружения (environ)
    • обработчик запроса (start_response)
  • вызывать обработчик запроса с кодом 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 могут брать на себя следующие функции (но не ограничиваются этим):

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

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

  • Trac — трекер, вики, управление проектами
  • MoinMoin — вики
  • Roundup — трекер

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

Внешние ссылки


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

Источник — «http://198.23.190.70/wiki/WSGI»
Личные инструменты

Served in 0.101 secs.