WSGI (англ. Web Server Gateway Interface, вимовляється віскі або візґі) — стандарт взаємодії між Python-програмою, яка виконується на стороні сервера, і самим вебсервером, наприклад, Apache.
Ідея
В 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')]) return ['Hello, world!']
Тут як ітератор використовується список з одного елемента — рядка тексту 'Hello, world!'
Middleware
Окрім вебзастосунків і вебсерверів стандарт дає визначення middleware-компоненти. Middleware надає інтерфейси як серверу, так і вебзастосунку. Тобто для сервера middleware є вебзастосунком, а для застосунка — сервером. Це дозволяє утворювати «ланцюжки» WSGI-сумісних middleware.
Middleware можуть брати на себе такі функції (однак не обмежуються наведеним):
- обробка сесій
- аутентифікація/авторизація
- управління URL (маршрутизація запитів)
- пост-обробка вихідних даних
Сумісні з WSGI
Зноски
- записано на слух на PyCon Ukraine 2011
Посилання
- PEP 3333 [ 1 листопада 2011 у Wayback Machine.] - Нова версія стандарту інтерфейсу 1.01
- PEP 333 [ 6 вересня 2008 у Wayback Machine.] — Python Enhancement Proposal, який визначає стандарт інтерфейсу (старий)
- — Бібліотека WSGI-компонент
- http://wsgi.org/ [ 1 квітня 2021 у Wayback Machine.] — найбільша вікі присвячена WSGI
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
WSGI angl Web Server Gateway Interface vimovlyayetsya viski abo vizgi standart vzayemodiyi mizh Python programoyu yaka vikonuyetsya na storoni servera i samim vebserverom napriklad Apache IdeyaV Python isnuye velika kilkist riznogo rodu vebfrejmvorkiv instrumentariyiv i bibliotek U kozhnogo z nih vlasnij metod vstanovlennya ta nalashtuvannya voni chasto napisani tak sho ne mozhut vzayemodiyati mizh soboyu Ce mozhe stati problemoyu bo vibir frejmvorku mozhe obmezhiti vibir vebservera i navpaki WSGI nadaye prostij i universalnij interfejs dlya vzayemodiyi mizh bilshistyu vebserveriv i vebzastosunkami chi frejmvorkami SpecifikaciyiVidpovidno do standartu WSGI vebzastosunok maye zadovolnyati nastupni vimogi maye buti viklichnim callable ob yektom prijmati dva parametri slovnik zminnih otochennya environ obrobnik zapitu start response viklikati obrobnik zapitu z kodom HTTP vidpovidi ta HTTP zagolovkami povertati iterator z tilom vidpovidi Prostim prikladom WSGI zastosunku mozhe sluzhiti taka funkciya def simplest wsgi app environ start response start response 200 OK Content Type text plain return Hello world Tut yak iterator vikoristovuyetsya spisok z odnogo elementa ryadka tekstu Hello world MiddlewareOkrim vebzastosunkiv i vebserveriv standart daye viznachennya middleware komponenti Middleware nadaye interfejsi yak serveru tak i vebzastosunku Tobto dlya servera middleware ye vebzastosunkom a dlya zastosunka serverom Ce dozvolyaye utvoryuvati lancyuzhki WSGI sumisnih middleware Middleware mozhut brati na sebe taki funkciyi odnak ne obmezhuyutsya navedenim obrobka sesij autentifikaciya avtorizaciya upravlinnya URL marshrutizaciya zapitiv post obrobka vihidnih danihSumisni z WSGIVebzastosunki Trac treker viki upravlinnya proyektami MoinMoin viki trekerVebfrejmvorki i serveri zastosunkiv Zope 3 Django Pylons TurboGears CherryPy FlaskZnoskizapisano na sluh na PyCon Ukraine 2011PosilannyaPEP 3333 1 listopada 2011 u Wayback Machine Nova versiya standartu interfejsu 1 01 PEP 333 6 veresnya 2008 u Wayback Machine Python Enhancement Proposal yakij viznachaye standart interfejsu starij Biblioteka WSGI komponent http wsgi org 1 kvitnya 2021 u Wayback Machine najbilsha viki prisvyachena WSGI