Топ 5 асинхроних веб оквира за Питхон

Асинхроно програмирање је грађанин прве класе у Питхон-у. Ако сте веб програмер, можете изабрати невероватне оквире!


Што се тиче писања, асинхроност није више само језичка реч у Питхон заједници. Пуштањем истог асинцио библиотека у 3.5 верзији, Питхон је препознао утицај Ноде.јс на развој веба и увео две нове кључне речи у језик – асинхтовање и чекање. То је била велика ствар, јер је језик Питхон-а изузетно опрезан ширењу језгре синтаксе осим ако не постоји хитна потреба, што само указује на то колико су Питхон-ови програмери од суштинске важности сматрали асинхроне могућности.

Као резултат тога, отворене су поплаве асинхроног програмирања: нове и старе библиотеке почеле су да користе функцију цороутинес, асинхрони оквири су експлодирали на популарности, а нови се и данас пишу. Учинковитост која је уједначена са или бољом од Ноде.јс-а није нечувена, а осим ако ваши обрасци за учитавање не укључују доста задатака ЦПУ-а, нема разлога зашто не можете да направите неколико хиљада захтева у секунди.

Али довољно мотивације!

Истражимо тренутни Питхон пејзаж и проверимо неке од најбољих асинхроних оквира.

Торнадо

Изненађујуће, Торнадо уопште није нови оквир. Првобитно издање било је 2009. године (пре тачно десет година, како је написано) и од тада је фокус био на пружању чврсто-асинхроног асинхроног програмирања са великом конкурентношћу.

Торнадо није принцип веб мреже. То је колекција асинхроних модула који се такође користе за изградњу веб оквира модула. Тачније, ови модули су:

  • Цороутине и остали примитиви (торнадо.ген, торнадо.лоцкс, торнадо.куеуес, итд.)
  • Мрежни модули (торнадо.иолооп, торнадо.иостреам итд.)
  • Асинхрони сервери и клијенти (торнадо.хттпсервер, торнадо.хттпцлиент, итд.)

Они су комбиновани да би се произвели завршни оквирни модули: торнадо.веб, торнадо.роутинг, торнадо.темплате итд..

импорт торнадо.иолооп
импорт торнадо.веб

класа МаинХандлер (торнадо.веб.РекуестХандлер):
деф гет (само):
селф.врите ("Здраво Свете")

деф маке_апп ():
ретурн торнадо.веб.Апплицатион ([
(р"/", МаинХандлер),
])

ако је __наме__ == "__главни__":
апп = маке_апп ()
апп.листен (8888)
торнадо.иолооп.ИОЛооп.цуррент (). старт ()

Торнадо има снажно и посвећено поштовање у Питхон заједници, а искусни архитекти га користе за изградњу изузетно способних система. То је оквир који је дуго имао одговор на проблеме истодобности, али можда није постао мејнстрим јер не подржава ВСГИ стандард и био је превелик буи-ин (сјетите се да је већина Питхон библиотека и даље синхрона ).

Саниц

Саниц је „модеран“ оквир у правом смислу те речи: не подржава Питхон верзију испод 3.6, подржава једноставну и универзалну синтаксу асинц / чекајте изван оквира, и као резултат, не чини да читате оптерећења документације и имајте на уму предње случајеве прије него што будете могли да напишете свој први ХТТП руковатељ.

Као резултат, резултирајућа синтакса је прилично пријатна (барем по мом мишљењу); подсећа на код који би написали са било којим другим микрооквиром (на пример, Фласк, ЦхерриПи) са само неколико асинхроних записа укопаним у:

од саниц импорт Саниц
од саниц.респонсе импорт јсон

апп = Саниц ()

@ апп.роуте ("/")
асинц деф тест (захтев):
ретурн јсон ({"Здраво": "свет"})

ако је __наме__ == "__главни__":
апп.рун (хост =)"0.0.0.0", порт = 8000)

Саниц је вјероватно најпопуларнији и најомиљенији оквир асинхронизације у Питхон свијету. Има готово све функције које бисте желели за своје пројекте – усмеравање, средњи софтвер, колачиће, верзије верзија, нацрте, приказе засноване на класама, статичке датотеке, стриминг, утичнице итд. – и оно што не нуди изван оквира – образац за предлагање, подршка базе података, И / О датотеке, редови – могу се додати јер за данас има довољно библиотека за асинхцију.

Вибора

Вибора Саниц је рођак, осим што је фиксиран на томе да постанете најбржи Питхон веб сервер тамо. У ствари, већ прва посета њене веб странице вас поздравља са упоређивањем оквира:

Као што видите, Вибора тврди да је неколико пута бржа од класичних оквира и више него двоструко бржа од Саница, најближег конкурента. Наравно, референтне вредности треба узети са зрном соли. ��

Иако је по синтакси и карактеристикама Вибора упоредива са Саницем (или је можда чак и нешто боља јер спаја популарне библиотеке и ствари попут предложака доступне су ван кутије), сматрао бих да је Саниц зрелији јер је дуже трајао и има већа заједница.

фром вибора импорт Вибора, ЈсонРеспонсе

апп = Вибора ()

@ апп.роуте (‘/’)
асинц деф хоме ():
повратак ЈсонРеспонсе ({‘хелло’: ‘свет’})

ако је __наме__ == ‘__маин__’:
апп.рун (хост =)"0.0.0.0", порт = 8000)

Ако сте ипак наркоман са перформанса, Вибора ће вам пловити чамцем. То би рекло, док пишете Вибора подлеже комплетном преправљању текста да би постало још брже, и линк верзији за перформансе каже да је под „тешким развојем“. Биће изневјерено онима који су раније покупили Вибору и ускоро се морају суочити са променама, али хеј, рани су дани у свету асинц Питхон-а и нико не очекује да ствари буду стабилне.

Кварт

Ако уживате да се развијате у Фласк-у, али вам недостаје подршка за асинхроност, уживаћете Кварт много.

Четврт је у складу са АСГИ стандард који је наследник познатог ВСГИ стандарда и нуди асинц подршку. Занимљивост код Куарт-а је да он није само сличан Фласк-у, већ је заправо у складу са Фласк АПИ-јем! Аутор овог оквира желео је да сачува Фласк осећај и само му дода асинц, ВебСоцкетс и ХТТП 2 подршку. Као резултат, можете научити Куарт право из Фласк документације, само имајући на уму да су функције у Куарту асинхроне.

из увоза квадрата Куарт

апп = кварт (__ наме__)

@ апп.роуте (‘/’)
асинц деф хелло ():
узврати ‘здраво’

апп.рун ()

Осјећа се (скоро) баш као Фласк, зар не??!

Будући да је Куарт еволуција Фласк-а, доступне су све функције унутар Фласк-а: усмјеравање, средњи софтвер, сесије, предлошке, нацрти и тако даље. У ствари, чак можете да користите екстензије Фласк директно унутар Куарт-а. Једна замисао је да је Питхон 3.7+ подржан само, али, ако не користите најновију верзију Питхона, можда асинхција није прави пут. ��

Документација заиста жели ако немате раније искуство са Фласк-ом, али могу вам препоручити Куарт-а, јер је то вероватно једини асинц оквир који ће се ускоро приближити његовом издању 1.0.

ФастАПИ

Последњи (али најимпресивнији) оквир на овој листи је ФастАПИ. Не, то није оквир само за АПИ; у ствари, чини се да је ФастАПИ најбогатији и најбогатији документација оквира на који сам наишао приликом истраживања асинц Питхон оквира.

Занимљиво је приметити да је аутор оквира детаљно проучавао неколико других оквира, од савремених попут Дјанго до модерних попут Саниц, као и прегледао технологије у НестЈС (Ноде.јс, Типесцрипт веб оквир). Њихова филозофија развоја и опсежне поређења могу се прочитати овде.

Синтакса је прилично пријатна; човек чак може тврдити да је много пријатнији од осталих оквира на које смо наишли:

ром фастапи импорт ФастАПИ

апп = ФастАПИ ()

@ апп.гет ("/ корисници / ја")
асинц деф реад_усер_ме ():
ретурн {"ИД корисник": "тренутни корисник"}

@ апп.гет ("/ корисници / {усер_ид}")
асинц деф реад_усер (усер_ид: стр):
ретурн {"ИД корисник": ИД корисник}

А сада, листа функција убица због којих ФастАПИ надмашује остале оквире:

Аутоматска генерација докумената за АПИ: Чим су ваше крајње тачке написане, можете се играти са АПИ-јем помоћу корисничког сучеља који одговара стандардима. Подржани су СваггерУИ, РеДоц и други.

Оквир такође врши аутоматску документацију модела података помоћу ЈСОН схеме.

Савремени развој: Да, реч „модерно“ се много баца, али нашао сам ФастАПИ да заправо проговори у њој. Убризгавање зависности и наговештавање типа су првокласни грађани, примењујући не само добре принципе кодирања, већ дугорочно спречавајући грешке и збрке..

Опсежна документација: Не знам за вас, али ја сам тотални слуга за добру документацију. И у овом подручју ФастАПИ побеђује рукама. Има страница на страницама докумената који објашњавају готово сваку ситницу и „пазите!“ моменти за програмере свих нивоа. Осјећам јасно „срце и душу“ у документима овде, а једино упоређивање које могу пронаћи су документи Дјанго (да, ФастАПИ документи су тако добри!).

Поред основа: ФастАПИ има подршку за ВебСоцкетс, Стреаминг, као и ГрапхКЛ, осим што има све традиционалне помагаче попут ЦОРС-а, сесија, колачића и тако даље.

А шта је са представом? Па, ФастАПИ је изграђен на невероватној библиотеци Старлетте, што резултира перформансама које одговарају Нодеу, а у неким случајевима чак и Го! Све у свему, стварно имам осећај да ће ФастАПИ постати напредни асистент за Питхон.

Закључак

Овог дана се у пејзажној асинхицији Питхон догађа много. Појављују се нови оквири, стари се преписују, а библиотеке се развијају како би одговарале понашању асинхије. Иако Питхон има уграђену подршку за петљу догађаја и делове апликације можете учинити асинц, можете да изаберете алл-ин и да надоградите на један од оквира овде. Само имајте на уму дугорочно: неколико Питхон асинц оквира тамо је у раним фазама и брзо се развијају, што ће наштетити вашем развојном процесу и повећати трошкове пословања. Опрез је кључан!

Али све речено и урађено; Питхон је спреман за производњу да пружи перформансе без светлости када су у питању мрежни оквири. Ако сте тако дуго размишљали о пресељењу у Ноде, сада то не требате! ��

Звучи кул? Учитељ Питхон данас!

ОЗНАКЕ:

  • Питхон

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