Како се користи Питхон СимплеХТТПСервер

How Use Python Simplehttpserver



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

Покрените веб сервер са терминала

Покрените следећу команду да бисте покренули веб сервер са терминала. Ако у команди није дефинисан број порта, веб сервер ће подразумевано почети са 8000 портова.







$ питхон3 -м хттп.сервер



Следећи излаз ће се појавити ако се веб сервер правилно покрене. Притисните ЦТРЛ+Ц да бисте зауставили сервер.




Покрените следећу команду да бисте покренули веб сервер на порту 8080.





$ питхон3 -м хттп.сервер 8080

Следећи излаз ће се појавити ако је веб сервер покренут на порту 8080.



Покрените веб сервер помоћу Питхон скрипте

Покрените следеће команде да бисте креирали фасциклу под називом Веб и идите у фасциклу. Све датотеке скрипти и ХТМЛ датотеке овог водича биће креиране унутар ове фасцикле.

$ мкдир веб

$ЦДВеб

Креирајте ХТМЛ датотеку под називом тестХТМЛ.хтмл унутар Веб фолдер са следећом скриптом. Ова датотека ће касније бити послужена са веб сервера.

тестХТМЛ.хтмл

< хтмл >

< глава >

< наслов >

Тестирајте Питхон веб сервер

</ наслов >

</ глава >

< тело >

< центар >

< имг срц='лого.јпег' све='Слика није пронађена'/>

< х2 стил='боја: зелена'>Честитамо! Ваш веб сервер успешно ради.</ х2 >

< п >Висит< до хреф='ввв.линукхинт.цом'>ЛинукХинт.цом</ до >за више водича о Питхону</ п >

</ центар >

</ тело >

</ хтмл >

Пример-1: Покрените веб сервер на одређеном броју порта

Направите питхон датотеку са следећом скриптом да бисте покренули веб сервер на 8008 порту. хттп.сервер модул је увезен за покретање веб сервера, а СоцкетСервер модул је увезен за обраду ХТТП захтева који долази са порта 8080. Објекат по имену Хандлер је креиран за руковање ХТТП захтевима. заувек() функција се позива за покретање веб сервера. У скрипту није додат ниједан услов за прекид. Дакле, скрипта ће генерисати грешку када корисник покуша да заустави сервер.

# Увези серверски модул

увозхттп.сервер

# Увези СоцкетСервер модул

увозсоцкетсервер


# Подесите број порта

Лука= 8080

# Креирајте објекат за руковање ХТТП захтевима

Хандлер=хттп.сервер.СимплеХТТПРекуестХандлер


# Покрени сервер заувек за руковање ХТТП захтевима

сасоцкетсервер.ТЦПСервер(('',Лука),Хандлер) каохттпд:

принт('Веб сервер ради на хттп: // лоцалхост:%с'%Лука)

хттпд.серве_форевер()

Оутпут

Следећи излаз ће се појавити након извршавања горње скрипте.


Листа датотека и фасцикли локације скрипте ће се приказати ако се следећи УРЛ изврши из прегледача.

хттп: // лоцалхост: 8080

Ако корисник притисне ЦТРЛ+Ц са терминала или притисне дугме стоп из уређивача ПиЦхарм, приказаће се следећа порука о грешци. Овај проблем је решен у следећем примеру овог водича.

Пример 2: Покрените веб сервер са бројем порта дефинисаним командном линијом

Направите питхон датотеку са следећом скриптом за покретање веб сервера на одређеном порту ако аргумент командне линије даје број порта; у супротном ће се 5000 користити као подразумевани порт. сис модул је увезен у скрипту ради читања вредности аргумената командне линије. покушај-осим блок је додат у скрипту за решавање грешке када корисник покуша да заустави сервер. Ако се након покретања сервера појави изузетак КеибоардИнтеррупт, тада ће се Близу() функција ће бити позвана да заустави веб сервер.

# Увези серверски модул

увозхттп.сервер

# Увези СоцкетСервер модул

увозсоцкетсервер

# Увези сис модул

увоз сис


покушати:

# Подесите број порта

ако сис.аргв[1:]:

Лука= инт(сис.аргв[1])

елсе:

Лука= 5000

# Подесите ИП адресу

адреса сервера= ('127.0.0.1',Лука)

# Креирајте објекат за руковање ХТТП захтевима

Хандлер=хттп.сервер.СимплеХТТПРекуестХандлер


# Заувек покрените веб сервер за руковање ХТТП захтевима

сасоцкетсервер.ТЦПСервер(('',Лука),Хандлер) каохттпд:

принт('Веб сервер ради на хттп: // лоцалхост:%с'%Лука)

хттпд.серве_форевер()

# Зауставио сервер

осим КеибоардИнтеррупт:

хттпд.сервер_цлосе()

принт('Сервер је заустављен.')

Оутпут

Следећи излаз ће се појавити након извршавања горње скрипте без вредности аргумента командне линије.

Следећи излаз ће се појавити ако покренете ХТМЛ датотеку која је креирана у претходном кораку са веб сервера.

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

Следећи излаз ће се појавити ако поново покренете скрипту након постављања вредности аргумента.

Пример 3: Покрените веб сервер са ХТМЛ датотеком

Направите питхон датотеку са следећом скриптом за покретање веб сервера дефинисањем ХТМЛ датотеке за основни УРЛ. Име хоста и број порта су дефинисани на почетку скрипте. ПитхонСервер цласс је у скрипти дефинисао приказивање ХТМЛ датотеке у прегледачу када веб сервер почне да ради.

# Увезите серверски модул

увозхттп.сервер


# Подесите име хоста

ДОМАЋИН= 'локални домаћин'

# Подесите број порта

ЛУКА= 4000


# Дефинишите класу за приказ индексне странице веб сервера

класаПитхонСервер(хттп.сервер.СимплеХТТПРекуестХандлер):

дефдо_ГЕТ(себе):

ако себе.пут == '/':

себе.пут = 'тестХТМЛ.хтмл'

повратакхттп.сервер.СимплеХТТПРекуестХандлер.до_ГЕТ(себе)


# Прогласите објекат класе

веб сервер=хттп.сервер.ХТТПСервер((ДОМАЋИН,ЛУКА),ПитхонСервер)


# Одштампајте УРЛ веб сервера

принт('Сервер је покренут хттп: //%с:%с'%(ДОМАЋИН,ЛУКА))


покушати:

# Покрените веб сервер

веб сервер.серве_форевер()

осим КеибоардИнтеррупт:

# Зауставите веб сервер

веб сервер.сервер_цлосе()

принт('Сервер је заустављен.')

Оутпут

Следећи излаз ће се појавити извршавајући горњу скрипту.

Следећа страница ће се појавити у прегледачу ако се изврши основни УРЛ прегледача веб сервера.

Закључак

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