Как да използвате Python SimpleHTTPServer

How Use Python Simplehttpserver



Основната задача на уеб сървъра е да обработва HTTP заявките от клиента. Той изчаква HTTP заявките, идващи от конкретния IP адрес и номер на порт, обработва заявката и изпраща отговора на клиента обратно. Python използва Прост HTTP сървър модул за създаване на уеб сървър незабавно и лесно обслужване на съдържанието на файла от сървъра. Може да се използва и за споделяне на файлове. За целта трябва да активирате този модул с местоположението на файловете, които могат да се споделят. Този модул идва с интерпретатора на Python. Не е необходимо да го инсталирате. Тъй като този модул е ​​обединен с http.server модул в python3, така че трябва да стартирате http.server за да стартирате уеб сървъра в python3. В този урок е показано как уеб сървърът може да се използва за обработка на HTTP заявки и споделяне на файлове.

Стартирайте уеб сървъра от терминала

Изпълнете следната команда, за да стартирате уеб сървъра от терминала. Ако в командата не е дефиниран номер на порта, уеб сървърът ще започне от 8000 порт по подразбиране.







$ python3 -m http.сървър



Следният изход ще се появи, ако уеб сървърът е стартиран правилно. CTRL+C се натиска, за да спре сървъра.




Изпълнете следната команда, за да стартирате уеб сървъра на порт 8080.





$ python3 -m http.сървър 8080

Следният изход ще се появи, ако уеб сървърът е стартиран на порта 8080.



Стартирайте уеб сървъра с помощта на скрипт Python

Изпълнете следните команди, за да създадете папка с име Уеб и отидете в папката. Всички скриптове и HTML файлове на този урок ще бъдат създадени в тази папка.

$ mkdir уеб

$CDУеб

Създайте HTML файл с име testHTML.html вътре в Уеб папка със следния скрипт. Този файл ще бъде доставен от уеб сървъра по -късно.

testHTML.html

< html >

< глава >

< заглавие >

Тествайте уеб сървъра на Python

</ заглавие >

</ глава >

< тяло >

< център >

< img src='logo.jpeg' всичко='Изображението не е намерено'/>

< h2 стил='цвят: зелен'>Честито! Вашият уеб сървър работи успешно.</ h2 >

< стр >Посетете< да се href='www.linuxhint.com'>LinuxHint.com</ да се >за повече уроци по Python</ стр >

</ център >

</ тяло >

</ html >

Пример-1: Стартирайте уеб сървъра в конкретния номер на порта

Създайте python файл със следния скрипт, за да стартирате уеб сървъра на порт 8008. http.server модул е ​​импортиран за стартиране на уеб сървъра, а SocketServer модул е ​​импортиран за обработка на HTTP заявката, идваща от порта 8080. Обект с име Манипулатор е създаден за обработка на HTTP заявки. завинаги () функция се извиква за стартиране на уеб сървъра. Към скрипта не е добавено условие за прекратяване. Така че скриптът ще генерира грешка, когато потребителят се опита да спре сървъра.

# Импортиране на сървърния модул

вносhttp.сървър

# Импортиране на модул SocketServer

вносsocketserver


# Задайте номера на порта

пристанище= 8080

# Създайте обект за обработка на HTTP заявки

Манипулатор=http.сървър.SimpleHTTPRequestHandler


# Стартирайте сървъра завинаги, за да обработвате HTTP заявките

сsocketserver.TCPS сървър(('',пристанище),Манипулатор) катоhttpd:

печат(„Уеб сървърът работи на http: // localhost:%s“%порт)

httpd.serve_forever()

Изход

Следният изход ще се появи след изпълнение на горния скрипт.


Списъкът с файловете и папката на мястото на скрипта ще се покаже, ако следният URL адрес се изпълни от браузъра.

http: // localhost: 8080

Ако потребителят натисне CTRL+C от терминала или натисне бутона за спиране от редактора на PyCharm, ще се покаже следното съобщение за грешка. Този проблем е решен в следващия пример на този урок.

Пример-2: Стартирайте уеб сървъра с номера на порта, определен от командния ред

Създайте python файл със следния скрипт, за да стартирате уеб сървър на конкретния порт, ако аргументът от командния ред дава номера на порта; в противен случай 5000 ще се използва като порт по подразбиране. sys модул е ​​импортиран в скрипта, за да прочете стойностите на аргументите от командния ред. пробвай-с изключение блок е добавен в скрипта за справяне с грешката, когато потребителят се опитва да спре сървъра. Ако изключението KeyboardInterrupt се появи след стартиране на сървъра, тогава близо() ще бъде извикана функция за спиране на уеб сървъра.

# Импортиране на сървърния модул

вносhttp.сървър

# Импортиране на модул SocketServer

вносsocketserver

# Импортиране на модул sys

внос sys


опитвам:

# Задайте номера на порта

ако sys.argv[1:]:

пристанище= int(sys.argv[1])

иначе:

пристанище= 5000

# Задайте IP адреса

адрес на сървъра= ('127.0.0.1',пристанище)

# Създайте обект за обработка на HTTP заявки

Манипулатор=http.сървър.SimpleHTTPRequestHandler


# Стартирайте уеб сървъра завинаги, за да обработвате HTTP заявките

сsocketserver.TCPS сървър(('',пристанище),Манипулатор) катоhttpd:

печат(„Уеб сървърът работи на http: // localhost:%s“%порт)

httpd.serve_forever()

# Спира сървъра

с изключение KeyboardInterrupt:

httpd.server_close()

печат('Сървърът е спрян.')

Изход

Следният изход ще се появи след изпълнение на горния скрипт без стойност на аргумента на командния ред.

Следният изход ще се появи, ако стартирате HTML файла, създаден в предишната стъпка от уеб сървъра.

Отворете диалоговия прозорец за конфигуриране от менюто Run на редактора на PyCharm, за да зададете стойността на аргумента на командния ред. Полето параметри се използва за задаване на аргумент на командния ред, а 3000 е зададено тук като стойност на аргумента.

Следният изход ще се появи, ако стартирате скрипта отново след задаване на стойността на аргумента.

Пример-3: Стартирайте уеб сървъра с HTML файла

Създайте python файл със следния скрипт, за да стартирате уеб сървъра, като дефинирате HTML файла за основния URL адрес. Името на хоста и номерът на порта са дефинирани в началото на скрипта. PythonServer class е дефинирал в скрипта да показва HTML файла в браузъра, когато уеб сървърът започне да работи.

# Импортирайте сървърния модул

вносhttp.сървър


# Задайте името на хоста

HOST= 'localhost'

# Задайте номера на порта

ПОРТ= 4000


# Определете клас за показване на индексната страница на уеб сървъра

класPythonServer(http.сървър.SimpleHTTPRequestHandler):

defdo_GET(себе си):

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

себе си.път = 'testHTML.html'

връщанеhttp.сървър.SimpleHTTPRequestHandler.do_GET(себе си)


# Обявете обект на класа

уеб сървър=http.сървър.HTTPS сървър((HOST,ПОРТ),PythonServer)


# Отпечатайте URL адреса на уеб сървъра

печат(„Сървърът стартира http: //%s:%s“%(HOST,ПОРТ))


опитвам:

# Стартирайте уеб сървъра

уеб сървър.serve_forever()

с изключение KeyboardInterrupt:

# Спрете уеб сървъра

уеб сървър.server_close()

печат('Сървърът е спрян.')

Изход

Следният изход ще се появи, изпълнявайки горния скрипт.

Следната страница ще се появи в браузъра, ако се изпълнява основният URL адрес на браузъра на уеб сървъра.

Заключение

Различните начини за внедряване на уеб сървъри чрез използване http. сървър module показа в този урок, за да помогне на потребителите на python да създадат прост уеб сървър в Python.