Кіріспе
Веб-серверлерге Python тілінде жазылған веб-қосымшаларға сұрауларды жіберуге арналған шақыру конвенциясы. Веб-сервер шлюзінің интерфейсі (WSGI, «виски» немесе «WIZghee» деп айтылады) – Python бағдарламалау тілінде жазылған веб-қосымшаларға немесе фреймворктерге сұрауларды жіберу үшін веб-серверлерге арналған қарапайым шақыру конвенциясы. WSGI-нің қазіргі нұсқасы, 1.0.1 нұсқасы, Python Enhancement Proposal (PEP) 3333-та сипатталған. WSGI алғаш рет 2003 жылы PEP 333 ретінде сипатталған. PEP 3333 2010 жылы жарияланды және Python 3 үшін спецификацияны жаңартады.
The Web Server Gateway Interface (WSGI, pronounced whiskey or WIZghee) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, version 1.0.1, is specified in Python Enhancement Proposal (PEP) 3333. WSGI was originally specified as PEP 333 in 2003. PEP 3333, published in 2010, updates the specification for Python 3.
Өмірбаян
2003 жылы Python веб-фреймворктері әдетте тек CGI, FastCGI, mod_python немесе белгілі бір веб-сервердің басқа бейімделген API-іне сәйкес жазылды. PEP 333 цитаты бойынша:
Python қазіргі уақытта Zope, Quixote, Webware, SkunkWeb, PSO және Twisted Web сияқты көптеген веб-қосымшалар фреймворктерін ұсынады. Мұндай кең таңдау жаңа Python пайдаланушылары үшін қиындық тудыруы мүмкін, себебі әдетте веб-фреймворк таңдауы қолданылатын веб-серверлерді шектейді, және керісінше. Ал Java-да да веб-қосымшалардың осындай көптеген фреймворктері болғанымен, Java-ның "servlet" API кез келген Java веб-қосымшалар фреймворкімен жазылған бағдарламаларды servlet API-ін қолдайтын кез келген веб-серверде іске қосуға мүмкіндік береді. Сондықтан WSGI веб-серверлер мен веб-қосымшалар немесе фреймворктер арасындағы интерфейс ретінде құрылды, ол портативті веб-қосымшаларды әзірлеу үшін ортақ платформаны дамытуға бағытталған. Мидлверлік компонент мынадай функцияларды орындай алады: екі параметрді қабылдайтын атаулы қосымша – environ және start_response. Environ – бұл CGI ортасының айнымалыларын, сондай-ақ басқа сұрау параметрлері мен метадеректерді жақсы анықталған кілттермен қамтитын сөздік. start_response өзі шақырылатын функция, ол екі позициялық параметрді қабылдайды: статус және жауап тақырыптары. 2-жол start_response функциясын шақырып, HTTP статусын "200 OK" және жауап тақырыбын "Content Type" деп белгілейді. 3-жол функцияны генераторға айналдырады. Жауаптың мәтіні байттар тізбегінің итерациялық түрі ретінде қайтарылады.