Lærðu WSGI og láttu Python svita litlu hlutina

Birting: Stuðningur þinn hjálpar til við að halda vefnum í gangi! Við þénum tilvísunargjald fyrir sumar þjónusturnar sem við mælum með á þessari síðu.


Um daginn var erfitt að þróa vefforrit í Python vegna þess að verktaki þurfti að gæta sérstakrar varúðar og tryggja að vefforrit þeirra myndi ganga vel á mismunandi netþjónum og ýmsum veframma fyrir Python. Val á tilteknum Python veframma við þróun forrits takmarkaði val á samhæfum netþjónum, sem geta keyrt lokið forrit.

WSGI (Web Server Gateway Interface) var kynnt til lausnar á þessu vandamáli. WSGI er forskrift fyrir staðlað viðmót fyrir samskipti milli netþjóna og Python veframma eða forrita. Ef forrit, eða rammi, er skrifað til að uppfylla WSGI forskriftina, þá mun það keyra á hvaða netþjóni sem styður sömu forskriftina..

Auðvitað, Python er ekki eina forritunarmálið með stöðluðu viðmótsforskrift. Mörg nútímaleg forritunarmál nota sömu aðferð, svo til dæmis notar Ruby sitt eigið Rack netþjónsviðmót, JavaScript treystir á JSGI hliðarviðmótið sitt en Perl notar PSGI.

Stutt saga

WSGI forskriftin var upphaflega kynnt í Python Aukahlutatillögunni 333 (PEP 333), skrifuð af Phillip J Eby og gefin út í desember 2003. Þessi upphaflegu WSGI sérstakar drög lögðu fram grundvallarreglur og markmið fyrir WSGI – það varð að vera auðvelt í framkvæmd , einfalt og alhliða, og varð að auðvelda auðvelda samtengingu núverandi netþjóna og ramma.

WSGI var fljótt tekið upp af Python netþjóni og rammahöfundum og þróunaraðilum og varð í reynd staðalinn fyrir þróun Python vefforrita. Nýjasta útgáfan af WSGI forskriftinni er V1.0.1 sem birt var í PEP 3333 26. september 2010.

Yfirlit yfir WSGI forskrift

WSGI forskriftin lýsir yfir þremur sérstökum hlutverkum: netþjónahliðinni, umsóknarhliðinni og miðbúnaðarhlutanum, sem útfærir bæði netþjóna- og umsóknarhlið tengisins.

Umsóknarhliðin

Umsóknarhlið WSGI er einfaldur hlutur sem tekur við tveimur rökum og hægt er að hringja úr kóða. Þetta dæmi sýnir einfalt WSGI forrit sem skilar stöðugu „Halló heimur!“ síðu:

def simple_app (umhverfi, start_response):
status = ‘200 OK’
response_headers = [(‘Innihaldstegund’, ‘texti / látlaus’)]
start_response (staða, svörun fyrirsagnir)
skila [‘Halló heimur! n’]

Hægt er að kalla á hliðar forritsins margfalt þar sem allir netþjónar leggja fram svo endurteknar beiðnir.

Miðlarinn hlið

Netþjónahlið WSGI fær einfaldlega beiðnir frá HTTP viðskiptavininum, kallar fram umsóknina einu sinni fyrir hverja beiðni og sendir svarið sem umsóknin skilar til viðskiptavinarins.

Middleware íhlutinn

Middleware íhlutir skilgreindir í WSGI forskriftinni nota báðar hliðar viðmótsins – umsóknarhliðina, sem og hlið netþjónsins. Middleware aðgerðir eru gagnsæjar bæði við þjóninn og hlið forritsins.

Middleware íhlutir forma venjulega aðgerðir eins og að beina beiðnum að mismunandi forritum sem byggjast á markslóðinni, þannig að mörg forrit geta keyrt hlið við hlið á sama ferli. Þau gera kleift að jafna, fjarlæga vinnslu eða innihald eftir vinnslu.

Þetta dæmi sýnir einfaldan miðhlutahluta sem skrifar yfir allt sem hann fær:

bekkjarframleiðsla:
def __init __ (sjálfstætt, app):
self.wrapped_app = forrit

def __call __ (sjálf, umhverfi, byrjun svar):
fyrir gögn í self.wrapped_app (umhverfi, start_response):
skila gögnum.

Notkun WSGI

WSGI er nú samþykkt sem staðalbúnaður fyrir þróun Python vefforrita. Python útgáfa 2.5 og síðari útgáfur eru með innbyggðan WSGI stuðning. Í Python útgáfum 2.4 og eldri er hægt að setja WSGI stuðning sérstaklega. Uppfærð útgáfa af WSGI forskriftinni sem lýst er í PEP 3333 er fáanleg fyrir Python 3.

Ef þú ert að þróa vefforrit í Python skaltu einfaldlega nota staðalinn sem sannað er í iðnaði, eins og Django, Flask eða Bottle Python veframma, eða einhver önnur núverandi Python ramma. Það er ekki nauðsynlegt að læra mikið um WSGI forskriftina til að smíða forrit. Notaðu bara hvaða núverandi kynslóð ramma sem er á vefforritinu og þú ættir að vera með það á hreinu, þar sem þeir styðja allir WSGI.

Aftur á móti, ef þú ert að þróa nýjan ramma um vefforrit sjálfur, þá ættirðu örugglega að skoða WSGI forskriftina vel og kíkja á nokkur námsgögn fyrir WSGI.

WSGI Resources

Ef þú þarft að komast að meira um WSGI leggjum við til að skoða nokkrar af eftirfarandi auðlindum á netinu:

  • WSGI samfélagssíðan er augljóslega fyrsti staðurinn til að heimsækja. Þú getur fundið mörg gagnleg úrræði, og það er líka ágætur Læra um WSGI hlutann. Þessi síða sýnir einnig ramma og netþjóna sem styðja WSGI.
  • Þú getur líka lesið Python aukahlutatillögu 333 og Python aukahlutatillögu 3333 fyrir frekari upplýsingar.
  • Pylons Web Development Framework Online Documentation er með mjög fallegan og ítarlegan kafla um WSGI.
  • WSGI námskeið Codepoint mun sýna WSGI forskriftina í vinnunni með nokkrum einföldum dæmum.

WSGI bækur

Erfitt er að komast að bókum sem fjalla sérstaklega um WSGI og venjulega er að finna kafla sem fjalla um WSGI í ýmsum Python forritum á vefforritum, eins og þessari:

  • Grunnur að Python netforritun: Alhliða leiðarvísir um að byggja upp netaðgerðir með Python eftir Goerzen, Bower og Rhodes: Kaflinn um forritun vefforrits nær bæði til WSGI staðalsins fyrir rekstrarsamhæfi íhluta, svo og nútímarammar eins og Django..

Niðurstaða

WSGI er nauðsynleg Python forskrift, en í raun þurfa flestir Python verktaki ekki að hafa áhyggjur af því. Svo lengi sem þeir nota stóran ramma, munu þeir njóta góðs af WSGI án þess að hugsa um það. Með öðrum orðum, flestir verktaki þurfa ekki náinn þekkingu á WSGI vegna þess að forskriftin hefur verið útfærð í öllum helstu Python ramma.

Sem sagt, WSGI er enn viðeigandi þó það sé ekki forsenda Python forritunar. Ein athyglisverð undantekning felur í sér hugbúnaðarverkfræðinga sem ákveða að vinna að Python ramma frekar en Python forritum. Hvað þau varðar þá er WSGI ómissandi sérstakur og þeir verða að þekkja inn- og útgönguleiðir WSGI ef þeir vonast til að samþætta það innan ramma.

Þetta er augljóslega (mjög) þéttur sess, en það þýðir ekki að WSGI þróun hafi stöðvast. Það þýðir aðeins að samfélagið er ekki stórt, heldur er það.

Frekari upplestur og úrræði

Við höfum fleiri handbækur, námskeið og infografics sem tengjast forritun og þróun:

  • Python kynning, auðlindir og algengar spurningar: Ef þú ert nýr í Python mun þessi kynning koma þér af stað.
  • MPI – Kynning, saga og auðlindir: MPI (Message Passing Interface) gerir forritum og öðrum tölvukerfum kleift að senda hvert annað skilaboð.
  • Linux forritun Kynning og auðlindir: þessi djúpa kafa í Linux forritun fer niður í kjarna þar sem öll aðgerðin er.

Hvaða kóða ætti að læra?

Ruglaður um hvaða forritunarmál þú ættir að læra að kóða á? Skoðaðu infographic okkar, hvaða kóða ættir þú að læra? Það fjallar ekki aðeins um mismunandi þætti tungumálsins, það svarar mikilvægum spurningum eins og „Hve miklum peningum mun ég græða á því að forrita Java til framfærslu?“

Hvaða kóða ættirðu að læra?
Hvaða kóða ætti að læra?

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