9 Питхон веб сервера које можете испробати за ваш следећи пројекат

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

Почећемо тако што ћемо разумети како веб сервери раде и потребу за интерфејсима мрежног пролаза сервера. Затим ћемо прећи преко листе Питхон веб сервера заједно са њиховим истакнутим карактеристикама. Већина њих је доступна као ПиПИ пакети које можете инсталирати и почети да користите у својим пројектима.

Почнимо!

Шта је веб сервер?

Када развијате Питхон апликацију, користићете развојни сервер да тестирате своју апликацију. Међутим, када се развој заврши, мораћете да примените своју апликацију на серверу производног нивоа. Између неколико слојева додатне функционалности на врху, веб сервер треба да има основну функционалност ХТТП сервера.

Питхон веб сервер би требало да буде у стању да рукује ХТТП захтевима (једноставним ХТТП захтевима као што су ГЕТ, ПУТ и ПОСТ) од клијената, као што су веб прегледачи, и да врати одговор. Овај одговор може укључивати ХТТП статусни код који показује да ли је захтев успешно обрађен или не. Може се састојати од ХТМЛ веб страница и полуструктурираних података као што су ЈСОН, КСМЛ и још много тога.

АСГИ против ВСГИ: Разумевање интерфејса мрежног пролаза сервера

Претпоставимо да сте развили Питхон апликацију у оквиру по вашем избору, рецимо, Дјанго или Фласк. Конвенционални сервер можда неће моћи да разуме и обради захтеве упућене Питхон апликацији. Ево где интерфејси мрежног пролаза сервера долазе у игру.

Овај интерфејс мрежног пролаза може бити интерфејс мрежног пролаза веб сервера (ВСГИ) или асинхрони интерфејс мрежног пролаза сервера (АСГИ). Веб сервер прима захтев од клијента, који затим преусмерава на интерфејс мрежног пролаза сервера. Интерфејс (ВСГИ/АСГИ) је у интеракцији са Питхон апликацијом преко изложеног позива.

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

  Како престати чувати послате е-поруке у Оутлоок 2016

Асинхрони серверски мрежни интерфејс, или АСГИ, је наследник ВСГИ и има додатну могућност да асинхроно обрађује захтеве.

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

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

Питхон веб сервери

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

Увицорн

Ако сте упознати са развојем апликација са ФастАПИ, наићи ћете на Увицорн, имплементацију веб сервера. Увицорн је имплементација АСГИ сервера за Питхон.

Да бисте инсталирали Увицорн и повезане зависности користећи пип, покрените следећу команду:

$ pip install uvicorn[standard] 
# includes installation of optional and Cython-based dependencies

Следеће су Увицорн-ове истакнуте карактеристике:

  • АСГИ имплементација
  • Подршка за покретање апликација из асинхроног Питхон окружења
  • Алат командне линије са опсежном листом опција
  • Подржава покретање апликација из фабричких функција
  • Пружа функције за програмску контролу инстанци сервера

Гуницорн

Гуницорн је ВСГИ сервер за Питхон апликације, добро познат по својим напредним функцијама управљања процесима.

Увицорн даје Гуницорн радничку класу, омогућавајући вам да истовремено постигнете предности у погледу перформанси и управљања процесима. Ова страница са документацијом садржи детаље о постављању Гуницорн-а.

Ако имате Питхон 3.5 и новије верзије, можете да инсталирате Гуницорн користећи пип:

$ pip install gunicorn

Следеће су Гуницорн-ове истакнуте карактеристике:

  • Једноставно и брзо
  • Компатибилан са многим веб оквирима
  • Подршка за употребу са ХТТП прокси сервером
  • Напредно управљање процесима

ЦхерриПи

ЦхерриПи је Питхон веб оквир — баш као Дјанго, Фласк и ФастАПИ — али није толико популаран као ови оквири. Са неколико стабилних издања, ЦхерриПи постоји и еволуирао је у потпуно развијен оквир више од једне деценије. Такође има заједницу програмера која подржава.

  Шта је СД Екпресс и колико је бржи?

Можете погледати занимљив Зен оф ЦхерриПи, који преноси суштину да је ЦхерриПи једноставан и минималистички, али моћан оквир.

ЦхерриПи је Питхон оквир, а не веб сервер, али је на нашој листи јер изворно подржава сервер производног нивоа — за разлику од већине других оквира.

Да бисте инсталирали ЦхерриПи и започели, покрените:

$ pip install CherryPy

Следеће су главне карактеристике ЦхерриПи-ја:

  • Питхониц фрамеворк који користи објектно оријентисани Питхон; добро погодно за почетнике
  • Подршка за ХТТП сервер спреман за производњу, Цхероот
  • Лакше је научити од других веб оквира, као што је Дјанго
  • Подршка за прављење и примену једноставних веб апликација на микросервисима

Дапхне

Дјанго је један од најпопуларнијих Питхон веб оквира. Ако сте развили апликације са Дјангом, вероватно ћете користити Дапхне веб сервер. Дапхне је једна од првих имплементација АСГИ сервера која се користи као референца за имплементације АСГИ сервера.

Дапхне је доступан као ПиПИ пакет који можете инсталирати користећи пип.

$ pip install daphne

Ево детаљног водича који ће вас провести кроз прављење Питхон апликације спремне за потпуну производњу.

Следе Дафнине истакнуте карактеристике:

  • Широко прихваћен у производним окружењима
  • Референца за све имплементације АСГИ сервера
  • Подршка за ХТТП, ХТТП2 и ВебСоцкет протоколе

Питхон Трио

Пројекат Трио има за циљ да обезбеди асинхроне И/О могућности производног нивоа: подршку за паралелни И/О и конкурентност. Овај пројекат такође има неколико веб и ХТТП Питхон библиотека.

Можете да инсталирате најновије издање Трио-а (јун 2022.) са ПиПИ-ја.

$ pip install trio

Ево листе корисних Трио библиотека за веб програмирање са Питхон-ом:

  • хиперцорн: Хиперцорн је АСГИ сервер који подржава ХТТП
  • муффин: Муффин је АСГИ веб оквир за Питхон
  • стартлетте: Старлетте је лагани АСГИ оквир
  • трио-вебсоцкет: подршка за ВебСоцкет сервер и клијент
  • хттпк: ХТТП клијент за Питхон

Твистед Веб

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

  Како да угостите туђи стрим на свом Твитцх каналу

Можете инсталирати Твистед и повезане модуле користећи пип:

$ pip install Twisted

Следеће су Твистед-ове истакнуте карактеристике:

  • Функције погодне за програмере као што су тестирање јединица и статичка провера кода
  • твистед.веб обезбеђује ВСГИ сервер и подршку за ХТТП клијенте и сервере

АИОХТТП

АИОХТТП је Питхон библиотека која пружа могућности клијента и сервера преко АПИ-ја клијента и сервера.

Ево корисног видео снимка који објашњава могућности асинхроног програмирања на страни клијента за значајно убрзање захтева за АПИ-је.

Следеће су главне карактеристике АИОХТТП-а:

  • Подршка за функционалност ХТТП сервера и клијента
  • Подршка за логовање ради лакшег отклањања грешака; обезбеђује евидентирање за клијента, сервера, веб утичнице и још много тога
  • Изворна подршка за тестирање преко питест додатка за тестирање: питест-аиохттп, који је доступан као ПиПИ пакет

Торнадо

Торнадо је још један Питхон веб оквир који подржава асинхроно умрежавање. Последњих година било је много стабилних издања Торнада – најновија верзија 6.2 је објављена у јулу 2022. Торнадо тренутно подржава Питхон 3.7 и новије верзије.

Као и већина пакета на овој листи, Торнадо се такође може инсталирати помоћу пип-а:

$ pip install tornado

Следеће су главне карактеристике Торнада:

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

Меинхелд

Меинхелд је ВСГИ сервер за Питхон. Користи и гради постојеће библиотеке за руковање догађајима и обраду ХТТП захтева.

Можете инсталирати Меинхелд користећи пип:

$ pip install meinheld

Неке карактеристике Меинхелда:

  • Користи библиотеку хттп-парсера за руковање долазним ХТТП захтевима
  • Надограђује се на пицоев библиотеку за руковање догађајима

Закључак

Надам се да вам је овај списак Питхон веб сервера био од помоћи. Обавезно их испробајте у својим будућим пројектима. Навели смо кључне карактеристике; да бисте у потпуности разумели зависности и како оне функционишу, мораћете да их користите у својим апликацијама. 👩🏽‍💻

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