WSGI

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

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

В Python існує велика кількість різного роду вебфреймворків,інструментаріїв ібібліотек.У кожного з них — власний метод встановлення та налаштування, вони часто написані так, що не можуть взаємодіяти між собою. Це може стати проблемою, бо вибір фреймворку може обмежити вибір вебсервера і навпаки.

WSGI надає простий і універсальнийінтерфейсдля взаємодії між більшістю вебсерверів івебзастосункамичифреймворками.

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

[ред.|ред. код]

Відповідно до стандарту WSGI, вебзастосунок має задовольняти наступні вимоги:

  • має бути викличним (callable) об'єктом
  • приймати два параметри:
    • словник змінних оточення (environ)
    • обробник запиту(start_response)
  • викликати обробник запиту з кодомHTTP-відповіді та HTTP-заголовками
  • повертати ітератор з тілом відповіді

Простим прикладом WSGI-застосунку може служити така функція:

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

Тут як ітератор використовується список з одного елемента — рядка тексту 'Hello, world!'

Окрімвебзастосунківівебсерверівстандарт дає визначення middleware-компоненти. Middleware надає інтерфейси як серверу, так і вебзастосунку. Тобто для сервера middleware є вебзастосунком, а длязастосунка— сервером. Це дозволяє утворювати «ланцюжки» WSGI-сумісних middleware.

Middleware можуть брати на себе такі функції (однак не обмежуються наведеним):

Сумісні з WSGI

[ред.|ред. код]
  • Trac— трекер, вікі, управління проєктами
  • MoinMoin— вікі
  • Roundup— трекер

Зноски

[ред.|ред. код]
  1. записано на слух на PyCon Ukraine 2011

Посилання

[ред.|ред. код]