Սովորեք WSGI- ին և թույլ տվեք, որ Python- ը քրտնեցնի մանր իրերը

Բացահայտում. Ձեր աջակցությունն օգնում է կայքը պահպանել: Այս էջում առաջարկվող որոշ ծառայությունների համար մենք վաստակում ենք ուղեգրման վճար.


Օրվա սկզբին Python- ում վեբ ծրագրեր մշակելը խնդրահարույց էր, քանի որ մշակողները ստիպված էին հատուկ խնամք ցուցաբերել և հավաստիացնել, որ իրենց վեբ հավելվածը սահուն կաշխատի Python- ի տարբեր վեբ սերվերների և տարբեր վեբ-շրջանակների վրա: Հատուկ Python վեբ շրջանակի ընտրությունը կիրառման ընթացքում սահմանափակում է համատեղելի վեբ սերվերների ընտրությունը, որը ունակ է գործարկել պատրաստի ծրագիրը.

Այս խնդրի լուծումը ներկայացվեց վեբ սերվերի դարպասի միջերեսը (WSGI): WSGI- ը ստանդարտացված ինտերֆեյսի առանձնահատկությունն է `վեբ սերվերների և Python- ի վեբ շրջանակների կամ ծրագրերի միջև հաղորդակցության համար: Եթե ​​դիմումը կամ շրջանակը գրված է, որպեսզի համապատասխանի WSGI ճշգրտմանը, ապա այն գործարկվելու է նույն նույն բնութագրին աջակցող ցանկացած վեբ սերվերի վրա.

Իհարկե, Python- ը ծրագրավորման միակ լեզուն չէ, որն ունի ստանդարտացված ինտերֆեյսի բնութագրում: Շատ ժամանակակից ծրագրավորման լեզուներ օգտագործում են նույն մոտեցումը, այնպես որ, օրինակ, Ruby- ն օգտագործում է իր Rack սերվերի միջերեսը, JavaScript- ը ապավինում է իր JSGI դարպասի միջերեսին, իսկ Perl- ն օգտագործում է PSGI.

Համառոտ պատմություն

WSGI բնութագիրն ի սկզբանե ներկայացվել է Python Enhancement Proposal 333 (PEP 333) առաջարկության մեջ, որը գրվել է Ֆիլիպ E Էբիի կողմից և հրապարակվել 2003 թվականի դեկտեմբերին: WSGI- ի այս նախնական նախագիծը սահմանում է WSGI- ի հիմնական սկզբունքներն ու նպատակները. Այն պետք է հեշտությամբ իրականացվեր , պարզ և համընդհանուր, և ստիպված էր հեշտացնել առկա սերվերների և շրջանակների հեշտ փոխկապակցումը.

WSGI- ն արագորեն ընդունվեց Python սերվերի և շրջանակի հեղինակների և մշակողների կողմից և դարձավ դե ֆակտո ստանդարտը Python վեբ հավելվածների մշակման համար: WSGI ճշգրտման վերջին տարբերակը V1.0.1 է, որը հրապարակվել է PEP 3333- ում, 2010 թվականի սեպտեմբերի 26-ին.

WSGI բնութագրերի ակնարկ

WSGI ճշգրտումը հայտարարում է երեք հատուկ դեր ՝ սերվերի կողմը, դիմումի կողմը և Middleware բաղադրիչը, որն իրականացնում է ինչպես սերվերի, այնպես էլ միջերեսի կիրառման կողմերը.

Դիմումի կողմը

WSGI- ի կիրառման կողմը պարզ առարկա է, որն ընդունում է երկու փաստարկ և կարող է կանչվել կոդից: Այս օրինակը ցույց է տալիս մի պարզ WSGI հավելված, որը վերադարձնում է ստատիկ «Բարև աշխարհ»: էջ:

def Simple_app (միջավայր, start_response).
կարգավիճակը = ‘200 OK’
përgjig_headers = [(‘Բովանդակության տիպ’, ‘տեքստ / պարզ’)]
start_response (կարգավիճակ, պատասխան_ գլխաշոր)
վերադարձ [‘Բարև աշխարհ! n’]

Կիրառման կողմնակի առարկաները կարող են բազմիցս վկայակոչվել, քանի որ բոլոր սերվերները նման կրկնակի հարցումներ են անում.

Սերվերի կողմը

WSGI- ի սերվերի կողմը պարզապես ստանում է հայցեր HTTP հաճախորդից, յուրաքանչյուր խնդրանքի համար մեկ անգամ դիմում է դիմումին և հայտի կողմից ուղարկված պատասխանը ուղարկում է հաճախորդին.

Middleware բաղադրիչը

WSGI ճշգրտությամբ սահմանված Middleware բաղադրիչները օգտագործում են ինտերֆեյսի երկու կողմերը `դիմումի կողմը, ինչպես նաև սերվերի կողմը: Middleware գործառույթները թափանցիկ են ինչպես սերվերի, այնպես էլ հայտի կողմի համար.

Middleware- ի բաղադրիչները սովորաբար ձևափոխում են այնպիսի գործառույթներ, ինչպիսիք են տարբեր դիմումի օբյեկտների ուղղորդման խնդրին ՝ հիմնված թիրախային URL- ի վրա, ինչը թույլ է տալիս մի քանի ծրագրեր աշխատել միմյանց հետ նույն գործընթացում: Դրանք հնարավորություն են տալիս բեռի հավասարակշռումը, հեռավոր մշակումը կամ բովանդակության հետագա վերամշակումը.

Այս օրինակը ցույց է տալիս մի պարզ միջնակարգ բաղադրիչ, որը գերազանցում է այն ամենը, ինչ ստանում է.

դասի վերին ծրագրաշար.
def __init __ (ինքնուրույն, հավելված).
self.wrapped_app = հավելված

def __call __ (ինքնուրույն, միջավայր, start_response):
self.wrapped_app- ի տվյալների մեջ (միջավայր, start_response).
վերադարձնել data.upper ()

Օգտագործելով WSGI

WSGI- ն այժմ ընդունվում է որպես Python վեբ հավելվածների զարգացման ստանդարտ: Python- ի տարբերակը 2.5 և հետագա թողարկումները ցուցադրում են ներկառուցված WSGI աջակցությունը: Python- ի 2.4 և ավելի վաղ տարբերակներում WSGI- ի աջակցությունը կարող է տեղադրվել առանձին: Python 3-ում հասանելի է PEP 3333-ում հայտարարված WSGI ճշգրտման նորացված տարբերակը.

Եթե ​​դուք Python- ում վեբ ծրագրեր եք մշակում, ապա պարզապես օգտագործեք արդյունաբերության կողմից ապացուցված ստանդարտ, օրինակ ՝ angoանգոյի, Flask- ի կամ Bottle Python- ի վեբ շրջանակները կամ Python- ի ցանկացած այլ գործող այլ շրջանակ: Անհրաժեշտ չէ շատ բան սովորել WSGI բնութագրման վերաբերյալ `ծրագրեր կազմելու համար: Պարզապես օգտագործեք ցանկացած սերնդի վեբ դիմումների ցանկացած շրջանակ, և դուք պետք է պարզ լինեք, քանի որ նրանք բոլորն աջակցում են WSGI- ին.

Մյուս կողմից, եթե դուք ինքներդ եք մշակում վեբ կիրառական նոր շրջանակ, ապա անպայման պետք է լավ դիտեք WSGI բնութագիրը և ստուգեք WSGI- ի որոշ ուսումնական ռեսուրսներ:.

WSGI ռեսուրսներ

Եթե ​​Ձեզ անհրաժեշտ է ավելին իմանալ WSGI- ի մասին, մենք առաջարկում ենք զննել հետևյալ առցանց ռեսուրսները.

  • WSGI համայնքի կայքը ակնհայտորեն առաջին տեղն է այցելել: Կարող եք գտնել շատ օգտակար ռեսուրսներ, և կա նաև գեղեցիկ Learn About WSGI բաժինը: Այս կայքը թվարկում է նաև WSGI- ին աջակցող շրջանակներն ու սերվերները.
  • Լրացուցիչ տեղեկությունների համար կարող եք կարդալ նաև Python Enhancement 333 և Python Enhancement 3333 ամբողջական առաջարկը:.
  • Pylons Web Development Framework Online Documentation- ը ունի շատ գեղեցիկ և մանրամասն բաժին WSGI- ի վերաբերյալ.
  • Codepoint- ի WSGI Tutorial- ը ցույց կտա աշխատանքի WSGI բնութագիրը `օգտագործելով մի քանի պարզ օրինակներ.

WSGI գրքեր

Գրքեր, որոնք հատուկ ընդգրկում են WSGI- ը, դժվար է հանդիպել, և սովորաբար կգտնեք գլուխներ, որոնք զբաղվում են WSGI- ով, Python- ի տարբեր վեբ հավելվածների ծրագրավորման գրքերում, ինչպիսիք են այսպիսի.

  • Python ցանցի ծրագրավորման հիմունքները. Goerzen- ի, Bower- ի և Rhodes- ի միջոցով Python- ի հետ ցանցային ակնարկների կառուցման համապարփակ ուղեցույց. Վեբ կիրառական ծրագրավորման գլուխը ներառում է ինչպես WSGI- ի ստանդարտը բաղադրիչի փոխգործունակության համար, այնպես էլ Django- ի նման ժամանակակից վեբ շրջանակներ:.

Եզրակացություն

WSGI- ը Python- ի կենսական ճշգրտում է, բայց իրականում Python- ի մշակողների մեծամասնությունը կարիք չունի անհանգստանալու այդ մասին: Քանի դեռ նրանք օգտագործում են հիմնական շրջանակ, նրանք կօգտվեն WSGI- ից ՝ առանց երկրորդ մտածելու: Այլ կերպ ասած, մշակողների մեծամասնությունը կարիք չունի WSGI- ի ինտիմ գիտելիքի, քանի որ ճշգրտումն իրականացվել է Python- ի բոլոր հիմնական շրջանակներում.

Այսպես ասած, WSGI- ը դեռևս արդիական է, չնայած դա նախադրյալ չէ Python- ի ծրագրավորման համար: Հատկանշական բացառություն է ծրագրային ինժեներները, ովքեր որոշում են աշխատել Python- ի շրջանակներում, այլ ոչ թե Python- ի ծրագրեր: Ինչ վերաբերում է նրանց, WSGI- ն անփոխարինելի առանձնահատկություն է, և նրանք պետք է իմանան WSGI- ի արհեստավարժությունները և արտագնա աշխատանքները, եթե նրանք հույս ունենան այն ինտեգրվել իրենց շրջանակներում:.

Սա ակնհայտորեն խիստ նիշ է, բայց դա չի նշանակում, որ WSGI- ի զարգացումը դադարեցված է: Պարզապես նշանակում է, որ համայնքը մեծ չէ, բայց այնտեղ է.

Հետագա ընթերցում և ռեսուրսներ

Մենք ունենք ավելի շատ ուղեցույցներ, ձեռնարկներ և ինֆոգրաֆիկա, որոնք կապված են կոդավորման և զարգացման հետ.

  • Python- ի ներածություն, ռեսուրսներ և FAQ- ներ. Եթե դուք նոր եք 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