Как использовать Python SimpleHTTPServer

How Use Python Simplehttpserver



Основная задача веб-сервера - обрабатывать HTTP-запросы от клиента. Он ожидает HTTP-запросов, поступающих с определенного IP-адреса и номера порта, обрабатывает запрос и отправляет ответ клиента обратно. Python использует SimpleHTTPServer модуль для мгновенного создания веб-сервера и простого обслуживания содержимого файла с сервера. Его также можно использовать для обмена файлами. Для этого вы должны включить этот модуль с указанием местоположения общих файлов. Этот модуль поставляется с интерпретатором Python. Устанавливать его не нужно. Поскольку этот модуль объединен с http.server модуль в python3, поэтому вам нужно запустить http.server для запуска веб-сервера в python3. В этом руководстве показано, как можно использовать веб-сервер для обработки HTTP-запросов и обмена файлами.

Запустите веб-сервер с терминала

Выполните следующую команду, чтобы запустить веб-сервер из терминала. Если в команде не указан номер порта, веб-сервер по умолчанию запускается с порта 8000.







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



Следующий вывод появится, если веб-сервер запущен правильно. CTRL + C нажимается, чтобы остановить сервер.




Выполните следующую команду, чтобы запустить веб-сервер на порту 8080.





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

Следующий вывод появится, если веб-сервер запущен на порту 8080.



Запустите веб-сервер с помощью скрипта Python

Выполните следующие команды, чтобы создать папку с именем Интернет и заходим в папку. Все файлы сценариев и HTML-файлы этого руководства будут созданы внутри этой папки.

$ mkdir web

$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

Импортироватьсокетсервер


# Установить номер порта

портзнак равно 8080

# Создать объект для обработки HTTP-запросов

Обработчикзнак равноhttp.сервер.SimpleHTTPRequestHandler


# Запустить сервер навсегда для обработки HTTP-запросов

с участиемсокетсервер.TCPServer(('',порт),Обработчик) в качествеhttpd:

Распечатать('Веб-сервер работает по адресу http: // localhost:% s'% порт)

httpd.serve_forever()

Выход

Следующий вывод появится после выполнения вышеуказанного скрипта.


Список файлов и папок, в которых находится сценарий, будет показан, если следующий URL-адрес будет запущен из браузера.

http: // локальный: 8080

Если пользователь нажимает CTRL + C на терминале или нажимает кнопку остановки в редакторе PyCharm, отображается следующее сообщение об ошибке. Эта проблема решена в следующем примере этого руководства.

Пример-2: Запуск веб-сервера с номером порта, определенным в командной строке.

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

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

Импортироватьhttp.сервер

# Импортировать модуль SocketServer

Импортироватьсокетсервер

# Импортировать модуль sys

Импортировать sys


пытаться:

# Установить номер порта

если sys.argv[1:]:

портзнак равно int(sys.argv[1])

еще:

портзнак равно 5000

# Установить IP-адрес

адрес серверазнак равно ('127.0.0.1',порт)

# Создать объект для обработки HTTP-запросов

Обработчикзнак равноhttp.сервер.SimpleHTTPRequestHandler


# Запустить веб-сервер навсегда для обработки HTTP-запросов

с участиемсокетсервер.TCPServer(('',порт),Обработчик) в качествеhttpd:

Распечатать('Веб-сервер работает по адресу http: // localhost:% s'% порт)

httpd.serve_forever()

# Остановил сервер

Кроме KeyboardInterrupt:

httpd.server_close()

Распечатать(«Сервер остановлен».)

Выход

Следующий вывод появится после выполнения вышеуказанного сценария без значения аргумента командной строки.

Следующий вывод появится, если запустить HTML-файл, созданный на предыдущем шаге, с веб-сервера.

Откройте диалоговое окно конфигурации из меню «Выполнить» редактора PyCharm, чтобы установить значение аргумента командной строки. Поле параметров используется для установки аргумента командной строки, и здесь устанавливается 3000 в качестве значения аргумента.

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

Пример-3: Запуск веб-сервера с файлом HTML

Создайте файл python со следующим сценарием для запуска веб-сервера, определив файл HTML для базового URL-адреса. Имя хоста и номер порта определены в начале сценария. PythonServer В сценарии определен класс для отображения HTML-файла в браузере при запуске веб-сервера.

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

Импортироватьhttp.сервер


# Установить имя хоста

ХОЗЯИНзнак равно 'localhost'

# Установить номер порта

ПОРТзнак равно 4000


# Определить класс для отображения страницы индекса веб-сервера

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

defполучить(себя):

если себя.дорожка == '/':

себя.дорожка знак равно 'testHTML.html'

возвращениеhttp.сервер.SimpleHTTPRequestHandler.получить(себя)


# Объявить объект класса

веб серверзнак равноhttp.сервер.HTTPServer((ХОЗЯИН,ПОРТ),PythonServer)


# Распечатать URL-адрес веб-сервера

Распечатать('Сервер запущен http: //% s:% s'%(ХОЗЯИН,ПОРТ))


пытаться:

# Запускаем веб-сервер

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

Кроме KeyboardInterrupt:

# Остановить веб-сервер

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

Распечатать(«Сервер остановлен».)

Выход

Следующий вывод появится при выполнении вышеуказанного сценария.

Следующая страница появится в браузере, если выполняется базовый URL-адрес веб-сервера в браузере.

Заключение

Различные способы реализации веб-серверов с использованием http. сервер Модуль, показанный в этом руководстве, поможет пользователям Python создать простой веб-сервер на Python.