Научете WSGI и оставете Python да изпоти малките неща

Разкриване на информация Вашата поддръжка помага за поддържането на сайта! Печелим такса за препращане за някои от услугите, които препоръчваме на тази страница.


В миналото разработването на уеб приложения в Python беше проблематично, защото разработчиците трябваше да полагат специални грижи и да гарантират, че тяхното уеб приложение безпроблемно ще работи на различни уеб сървъри и различни уеб рамки за Python. Изборът на конкретна уеб рамка на Python по време на разработването на приложения ограничава избора на съвместими уеб сървъри, способни да стартират готовото приложение.

Интерфейсът на шлюза на уеб сървъра (WSGI) беше въведен като решение на този проблем. WSGI е спецификация за стандартизиран интерфейс за комуникация между уеб сървъри и Python уеб рамки или приложения. Ако приложение или рамка е написано, за да съответства на WSGI спецификацията, то ще се изпълнява на всеки уеб сървър, поддържащ същата спецификация.

Разбира се, Python не е единственият език за програмиране със стандартизирана спецификация на интерфейса. Много съвременни езици за програмиране използват същия подход, така че например Ruby използва собствен интерфейс Rack сървър, JavaScript разчита на своя JSGI шлюз интерфейс, докато Perl използва PSGI.

Кратка история

Спецификацията за WSGI първоначално беше въведена в предложението за подобряване на Python 333 (PEP 333), написано от Phillip J Eby и публикувано през декември 2003 г. Този първоначален проект на WSGI определи основните принципи и цели за WSGI – той трябваше да бъде лесен за изпълнение , проста и универсална и трябваше да улесни лесното свързване на съществуващите сървъри и рамки.

WSGI беше бързо приет от авторите и разработчиците на сървъри и рамкови сървъри и разработчици на Python и стана фактически стандарт за разработване на уеб приложения на Python. Последната версия на WSGI спецификацията е V1.0.1, публикувана в PEP 3333 на 26 септември 2010 г..

Преглед на спецификациите на WSGI

Спецификацията на WSGI декларира три специфични роли: страна на сървъра, страна на приложението и компонент на средния софтуер, който реализира както сървърната, така и страницата на приложението на интерфейса.

Страната на приложението

Приложната страна на WSGI е прост обект, който приема два аргумента и може да бъде извикан от код. Този пример показва просто WSGI приложение, което връща статично „Здравей свят!“ страница:

дефинирайте simple_app (среда, стартов отговор):
status = ‘200 ОК’
response_headers = [(“Тип съдържание”, “текст / обикновен”)]
start_response (състояние, отговор_глави)
return [‘Здравей свят! n’]

Страничните обекти на приложението могат да бъдат извиквани многократно, тъй като всички сървъри отправят такива многократни заявки.

Страницата на сървъра

Сървърната страна на WSGI просто получава заявки от HTTP клиента, извиква приложението веднъж за всяка заявка и изпраща отговора, върнат от приложението, на клиента.

Компонентът на средния софтуер

Компонентите на средния софтуер, дефинирани в спецификацията на WSGI, използват двете страни на интерфейса – страна на приложението, както и страна на сървъра. Функциите на средния софтуер са прозрачни както за страната на сървъра, така и за приложението.

Компонентите на средния софтуер обикновено изпълняват функции като маршрутизиране на заявки към различни обекти на приложението въз основа на целевия URL адрес, което позволява на множество приложения да се изпълняват едно до друго в един и същ процес. Те позволяват балансиране на натоварването, отдалечена обработка или последваща обработка на съдържание.

Този пример показва прост компонент за междинен софтуер, който преглежда главно всичко, което получава:

клас Горна софтуер:
def __init __ (самостоятелно, приложение):
self.wrapped_app = ап

def __call __ (самостоятелно, среда, start_response):
за данни в self.wrapped_app (среда, start_response):
върнете data.upper ()

Използване на WSGI

WSGI вече е приет като стандарт за разработване на уеб приложения на Python. Версия 2.5 и следващите версии на Python разполагат с вградена поддръжка на WSGI. Във версии 2.4 и по-стари версии на Python поддръжката на WSGI може да бъде инсталирана отделно. За Python 3 е налична актуализирана версия на WSGI спецификацията, декларирана в PEP 3333.

Ако разработвате уеб приложения в Python, просто използвайте доказан стандарт в отрасъла като Django, Flask или Bottle Python уеб рамки или всяка друга текуща Python рамка. Не е необходимо да научите много за WSGI спецификацията за изграждане на приложения. Просто използвайте всяка текуща генерация на уеб приложения и трябва да сте на ясно, тъй като всички те поддържат WSGI.

От друга страна, ако сами разработвате нова рамка за уеб приложения, определено трябва да разгледате добре спецификацията на WSGI и да проверите някои учебни ресурси за WSGI.

WSGI ресурси

Ако трябва да разберете повече за WSGI, предлагаме да разгледате някои от следните онлайн ресурси:

  • Сайтът на общността на WSGI очевидно е първото място за посещение. Можете да намерите много полезни ресурси, а също така има и хубава секция Learn About WSGI. Този сайт също изброява рамките и сървърите, които поддържат WSGI.
  • Можете също така да прочетете пълното предложение за подобряване на Python 333 и предложението за подобряване на Python 3333 за повече информация.
  • Електронната документация на Pylons Web Development Framework съдържа много хубав и подробен раздел за WSGI.
  • Урокът за WSGI на Codepoint ще демонстрира WSGI спецификацията при работа, използвайки няколко прости примера.

WSGI Книги

Книги, които покриват конкретно WSGI, са трудни за изпълнение и обикновено ще намерите глави, занимаващи се с WSGI в различни книги за програмиране на уеб приложения на Python, като тази:

  • Основи на мрежовото програмиране на Python: Изчерпателното ръководство за изграждане на мрежови приложения с Python от Goerzen, Bower и Rhodes: Главата за програмирането на уеб приложения обхваща както WSGI стандарта за оперативна съвместимост на компонентите, така и съвременните уеб рамки като Django.

заключение

WSGI е жизненоважна спецификация на Python, но в действителност повечето разработчици на Python не се притесняват от това. Докато те използват основна рамка, те ще се възползват от WSGI, без да го обмислят. С други думи, повечето разработчици не се нуждаят от интимни познания за WSGI, тъй като спецификацията е въведена във всички основни рамки на Python.

Въпреки това WSGI е все още актуален, въпреки че не е необходимо условие за програмиране на Python. Едно забележително изключение включва софтуерните инженери, които решават да работят върху Python рамки, а не Python приложения. Що се отнася до тях, WSGI е незаменима спецификация и те трябва да знаят входовете и изходите на WSGI, ако се надяват да го интегрират в своята рамка.

Това очевидно е (много) стегната ниша, но това не означава, че развитието на WSGI е спряло. Това просто означава, че общността не е голяма, но е там.

Допълнително четене и ресурси

Имаме още ръководства, ръководства и инфографика, свързани с кодирането и разработката:

  • Въведение, ресурси и често задавани въпроси за Python: ако сте нов за Python, това въведение ще ви накара да продължите.
  • MPI – Въведение, история и ресурси: Интерфейсът за предаване на съобщения (MPI) позволява на програми и други компютърни системи да изпращат съобщения един до друг.
  • Въведение и ресурси за програмиране на Linux: това дълбоко гмуркане в програмирането на Linux се спуска в ядрото, където е всички действия.

Какъв код трябва да научите?

Объркани в какъв език за програмиране трябва да се научите да кодирате? Вижте нашата инфография, какъв код трябва да научите? Той не само обсъжда различни аспекти на езиците, а отговаря на важни въпроси от рода на: „Колко пари ще спечеля за програмиране на Java за прехрана?“

Какъв код трябва да научите?
Какъв код трябва да научите?

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map