Python

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

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

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

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

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

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

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


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

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

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

Стартирайте уеб сървъра, използвайки Python скрипт

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

$ mkdir уеб
$ cd уеб

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

testHTML.html



<br>Тествайте Python уеб сървъра<br>



Изображението не е намерено

Поздравления! Вашият уеб сървър работи успешно.


Посетете LinuxHint.com за повече уроци по Python




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

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

# Импортиране на сървърния модул
импортиране на http.сървър
# Импортиране на модул SocketServer
импортиране на сокет сървър
# Задайте номера на порта
порт = 8080
# Създайте обект за обработка на HTTP заявки
Манипулатор = http.сървър.SimpleHTTPRequestHandler
# Стартирайте сървъра завинаги, за да обработвате HTTP заявките
със сокет сървър.TCPServer (("", порт), манипулатор) като httpd:
print ("Уеб сървърът работи на http: // localhost:% s"% port)
httpd.serve_forever ()

Изход

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


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

http: // localhost: 8080

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

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

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

# Импортиране на сървърния модул
импортиране на http.сървър
# Импортиране на модул SocketServer
импортиране на сокет сървър
# Импортиране на модул sys
импортиране на sys
опитвам:
# Задайте номера на порта
ако sys.argv [1:]:
port = int (sys.argv [1])
друго:
порт = 5000
# Задайте IP адреса
server_address = ('127.0.0.1 ', порт)
# Създайте обект за обработка на HTTP заявки
Манипулатор = http.сървър.SimpleHTTPRequestHandler
# Стартирайте уеб сървъра завинаги, за да обработвате HTTP заявките
със сокет сървър.TCPServer (("", порт), манипулатор) като httpd:
print ("Уеб сървърът работи на http: // localhost:% s"% port)
httpd.serve_forever ()
# Спря сървъра
с изключение на KeyboardInterrupt:
httpd.server_close ()
print ("Сървърът е спрян.")

Изход

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

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

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

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

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

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

# Импортирайте сървърния модул
импортиране на http.сървър
# Задайте името на хоста
HOST = "localhost"
# Задайте номера на порта
ПОРТ = 4000
# Определете клас за показване на индексната страница на уеб сървъра
клас PythonServer (http.сървър.SimpleHTTPRequestHandler):
def do_GET (самостоятелно):
ако аз.път == '/':
себе си.път = 'тестHTML.html '
връщане http.сървър.SimpleHTTPRequestHandler.do_GET (самостоятелно)
# Декларирайте обект на класа
webServer = http.сървър.HTTPServer ((HOST, PORT), PythonServer)
# Отпечатайте URL адреса на уеб сървъра
print ("Сървърът стартира http: //% s:% s"% (HOST, PORT))
опитвам:
# Стартирайте уеб сървъра
уеб сървър.serve_forever ()
с изключение на KeyboardInterrupt:
# Спрете уеб сървъра
уеб сървър.server_close ()
print ("Сървърът е спрян.")

Изход

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

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

Заключение

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

Курсорът скача или се движи произволно, докато пишете в Windows 10
Ако установите, че курсорът на вашата мишка скача или се движи самостоятелно, автоматично, произволно, докато пишете в лаптоп или компютър на Windows,...
Как да обърнете посоката на превъртане на мишката и тъчпада в Windows 10
Мишка и Тъчпадs не само правят изчисленията лесни, но и по-ефективни и отнемат по-малко време. Не можем да си представим живот без тези устройства, но...
Как да промените курсора на мишката и размера на курсора, цвета и схемата в Windows 10
Показалецът на мишката и курсорът в Windows 10 са много важни аспекти на операционната система. Това може да се каже и за други операционни системи, т...