Основная задача веб-сервера - обрабатывать HTTP-запросы от клиента. Он ожидает HTTP-запросов, поступающих с определенного IP-адреса и номера порта, обрабатывает запрос и отправляет ответ клиента обратно. Python использует SimpleHTTPServer модуль для мгновенного создания веб-сервера и простой передачи содержимого файла с сервера. Его также можно использовать для обмена файлами. Для этого вы должны включить этот модуль с указанием местоположения общих файлов. Этот модуль поставляется с интерпретатором Python. Вам не нужно его устанавливать. Поскольку этот модуль объединен с http.сервер модуль в python3, поэтому вам нужно запустить http.сервер для запуска веб-сервера в python3. В этом руководстве показано, как веб-сервер может обрабатывать HTTP-запросы и обмениваться файлами.
Запустите веб-сервер с терминала
Выполните следующую команду, чтобы запустить веб-сервер из терминала. Если в команде не указан номер порта, веб-сервер по умолчанию будет запускаться с порта 8000.
$ python3 -m http.сервер
Следующий вывод появится, если веб-сервер запущен правильно. CTRL + C нажата, чтобы остановить сервер.
Выполните следующую команду, чтобы запустить веб-сервер на порту 8080.
Следующий вывод появится, если веб-сервер запущен на порту 8080.
Запустите веб-сервер с помощью скрипта Python
Выполните следующие команды, чтобы создать папку с именем сеть и заходим в папку. Все файлы сценариев и HTML-файлы этого руководства будут созданы внутри этой папки.
$ mkdir web$ cd web
Создайте HTML-файл с именем testHTML.html внутри сеть папка со следующим скриптом. Этот файл будет загружен с веб-сервера позже.
testHTML.html
Протестируйте веб-сервер Python
Поздравление! Ваш веб-сервер работает успешно.
Посещение 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-адрес будет запущен из браузера.
Если пользователь нажимает 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.