Naučte se WSGI a nechte Python potit malé věci

Zveřejnění: Vaše podpora pomáhá udržovat provoz webu! Za některé služby, které na této stránce doporučujeme, dostáváme poplatek za doporučení.


V ten den byl vývoj webových aplikací v Pythonu problematický, protože vývojáři museli věnovat zvláštní péči a zajistit, aby jejich webové aplikace hladce fungovaly na různých webových serverech a různých webových rámcích pro Python. Výběr specifického webového rámce Pythonu během vývoje aplikace omezil výběr kompatibilních webových serverů, které jsou schopné spouštět hotovou aplikaci.

Jako řešení tohoto problému bylo představeno rozhraní webového serveru (WSGI). WSGI je specifikace standardizovaného rozhraní pro komunikaci mezi webovými servery a webovými rámci nebo aplikacemi Pythonu. Pokud je aplikace nebo rámec napsán tak, aby vyhovoval specifikaci WSGI, bude spuštěn na jakémkoli webovém serveru podporujícím stejnou specifikaci..

Python samozřejmě není jediným programovacím jazykem se standardizovanou specifikací rozhraní. Mnoho moderních programovacích jazyků používá stejný přístup, takže například Ruby používá vlastní rozhraní serveru Rack, JavaScript se spoléhá na rozhraní JSGI brány, zatímco Perl používá PSGI.

Stručná historie

Specifikace WSGI byla původně zavedena v Python Enhancement Návrh 333 (PEP 333), napsaném Phillipem J Ebym a zveřejněna v prosinci 2003. Tento počáteční návrh WSGI stanovil základní principy a cíle WSGI – musel být snadno implementovatelný , jednoduché a univerzální a muselo usnadnit snadné propojení existujících serverů a rámců.

Autoři WSGI rychle přijali autoři a vývojáři Python serverů a frameworků a stali se de facto standardem pro vývoj webových aplikací v Pythonu. Poslední verze specifikace WSGI je V1.0.1, publikovaná v PEP 3333 dne 26. září 2010.

Přehled specifikace WSGI

Specifikace WSGI deklaruje tři specifické role: strana serveru, strana aplikace a součást middlewaru, která implementuje rozhraní serveru i aplikace..

Strana aplikace

Aplikační strana WSGI je jednoduchý objekt, který přijímá dva argumenty a může být vyvolán z kódu. Tento příklad ukazuje jednoduchou aplikaci WSGI, která vrací statický „Ahoj svět!“ stránka:

def simple_app (environment, start_response):
status = ‘200 OK’
response_headers = [(‘Content-type’, ‘text / plain’)]
start_response (status, response_headers)
návrat [‘Ahoj svět! n’]

Objekty na straně aplikace lze vyvolat vícekrát, protože všechny servery dělají takové opakované požadavky.

Strana serveru

Serverová strana WSGI jednoduše přijímá požadavky od klienta HTTP, vyvolá aplikaci jednou pro každý požadavek a odešle odpověď vrácenou aplikací klientovi.

Komponent Middleware

Komponenty middlewaru definované ve specifikaci WSGI používají obě strany rozhraní – na straně aplikace i na straně serveru. Middlewarové funkce jsou průhledné jak na straně serveru, tak na straně aplikace.

Komponenty Middleware obvykle provádějí funkce, jako jsou směrování požadavků na různé aplikační objekty založené na cílové adrese URL, což umožňuje spuštění několika aplikací vedle sebe ve stejném procesu. Umožňují vyrovnávání zatížení, vzdálené zpracování nebo následné zpracování obsahu.

Tento příklad ukazuje jednoduchou součást middlewaru, která pokrývá vše, co obdrží:

třída Upperware:
def __init __ (vlastní, aplikace):
self.wrapped_app = app

def __call __ (self, environment, start_response):
pro data v self.wrapped_app (environment, start_response):
return data.upper ()

Používání WSGI

WSGI je nyní přijímán jako standard pro vývoj webových aplikací Python. Python verze 2.5 a následné verze mají zabudovanou podporu WSGI. Ve verzi Python verze 2.4 a starší lze podporu WSGI nainstalovat samostatně. Pro Python 3 je k dispozici aktualizovaná verze specifikace WSGI deklarovaná v PEP 3333.

Pokud vyvíjíte webové aplikace v Pythonu, jednoduše použijte průmyslově prověřený standard, jako jsou webové rámce Django, Flask nebo Bottle Python nebo jakékoli jiné současné rámce Python. K vytváření aplikací není nutné se mnoho dozvědět o specifikaci WSGI. Stačí použít jakýkoli stávající webový aplikační rámec a měli byste být jasní, protože všichni podporují WSGI.

Na druhou stranu, pokud vyvíjíte nový rámec webových aplikací sami, určitě byste se měli určitě dobře podívat na specifikace WSGI a podívat se na některé studijní zdroje pro WSGI..

Zdroje WSGI

Pokud se chcete dozvědět více o WSGI, doporučujeme vám podívat se na některé z následujících online zdrojů:

  • Komunitní web WSGI je zjevně prvním místem k návštěvě. Najdete mnoho užitečných zdrojů a je zde také pěkná sekce Zjistěte více o WSGI. Tato stránka také uvádí rámce a servery, které podporují WSGI.
  • Další informace si také můžete přečíst v plném znění návrhu vylepšení Python 333 a Python Enhancement Návrh 3333..
  • Online dokumentace Pylons Web Development Framework má velmi pěknou a podrobnou sekci o WSGI.
  • Výukový program WSGI společnosti Codepoint předvede specifikaci WSGI v práci pomocí několika jednoduchých příkladů.

Knihy WSGI

Knihy, které se konkrétně týkají WSGI, je těžké přijít a obvykle najdete kapitoly zabývající se WSGI v různých programovacích knihách webových aplikací Python, jako je tato:

  • Základy programování v síti Python: Komplexní průvodce vytvářením síťových aplikací s Pythonem od Goerzena, Bowera a Rhodese: Kapitola o programování webových aplikací zahrnuje jak standard WSGI pro interoperabilitu komponent, tak moderní webové rámce, jako je Django..

Závěr

WSGI je životně důležitá specifikace Pythonu, ale ve skutečnosti se většina vývojářů Pythonu o to nemusí starat. Dokud využívají hlavní rámec, budou těžit z WSGI, aniž by na to vzpomněli. Jinými slovy, většina vývojářů nevyžaduje důvěrnou znalost WSGI, protože specifikace byla implementována do všech hlavních Pythonových rámců.

To znamená, že WSGI je stále relevantní, ačkoli to není předpoklad pro programování v Pythonu. Jedna významná výjimka zahrnuje softwarové inženýry, kteří se rozhodnou pracovat na Pythonových rámcích spíše než na Pythonových aplikacích. Pokud jde o ně, WSGI je nezbytnou specifikací a musí znát výhody a výstupy WSGI, pokud doufají, že jej integrují do svého rámce.

To je zjevně (velmi) těsný výklenek, ale to neznamená, že vývoj WSGI se zastavil. Znamená to pouze, že komunita není velká, ale je tam.

Další čtení a zdroje

Máme více průvodců, výukových programů a infografik týkajících se kódování a vývoje:

  • Úvod, zdroje a FAQ Pythonu: Pokud jste v Pythonu nováčkem, tento úvod vás provede.
  • MPI – Úvod, historie a zdroje: Rozhraní pro předávání zpráv (MPI) umožňuje programům a dalším počítačovým systémům posílat zprávy navzájem.
  • Úvod a zdroje pro programování Linuxu: tento hluboký ponor do programování Linuxu spadne do jádra, kde je veškerá akce.

Jaký kód byste se měli naučit?

Zmateni, v jakém programovacím jazyce byste se měli naučit kódovat? Podívejte se na náš infographic, jaký kód byste se měli naučit? Nejen, že diskutuje o různých aspektech jazyků, ale odpovídá na důležité otázky, například: „Kolik peněz vydělám na programování Java pro bydlení?“

Jaký kód byste se měli naučit?
Jaký kód byste se měli naučit?

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