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 web
$ cd web

Создайте HTML-файл с именем testHTML.html внутри сеть папка со следующим скриптом. Этот файл будет загружен с веб-сервера позже.

testHTML.html



<br>Протестируйте веб-сервер Python<br>



Изображение не найдено

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


Посещение LinuxHint.ком для получения дополнительных руководств по Python




Пример-1: запустить веб-сервер с определенным номером порта

Создайте файл python со следующим сценарием для запуска веб-сервера на порту 8008. http.сервер модуль был импортирован для запуска веб-сервера, а SocketServer был импортирован модуль для обработки HTTP-запроса, поступающего с порта 8080. Объект с именем Обработчик был создан для обработки HTTP-запросов. навсегда() функция вызывается для запуска веб-сервера. В скрипт не добавлено условие завершения. Итак, скрипт выдаст ошибку, когда пользователь попытается остановить сервер.

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

Выход

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


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

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

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

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

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

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

Выход

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

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

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

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

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

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

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

Выход

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

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

Заключение

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

Vulkan для пользователей Linux
С каждым новым поколением видеокарт мы видим, как разработчики игр расширяют границы графической точности и приближаются на шаг ближе к фотореализму. ...
OpenTTD против Simutrans
Создание собственного транспортного симулятора может быть увлекательным, расслабляющим и чрезвычайно увлекательным занятием. Вот почему вам нужно попр...
Учебник OpenTTD
OpenTTD - одна из самых популярных бизнес-симуляторов. В этой игре вам нужно создать замечательный транспортный бизнес. Тем не менее, вы начнете в нач...