Веб-сервер в Python можно настроить двумя способами. Python поддерживает веб-сервер из коробки. Вы можете запустить веб-сервер с помощью одной строки.
Но вы также можете создать собственный веб-сервер, обладающий уникальной функциональностью. В этой статье вы узнаете, как это сделать.
Веб-сервер в этом примере может быть доступен только в вашей локальной сети. Это может быть либо localhost, либо другой сетевой хост. Вы можете обслуживать его в другом месте с помощью vpn.
Пример
Встроенный веб-сервер
Чтобы запустить веб-сервер, выполните приведенную ниже команду:
1 | python3 -m http.server |
Это откроет веб-сервер на порту 8080. Затем вы можете открыть браузер по адресу http://127.0.0.1:8080/.
Веб-сервер также доступен по сети, используя ваш адрес 192.168.-.-.
Это сервер по умолчанию, который вы можете использовать для загрузки файлов с машины.
Веб-сервер
Выполните приведенный ниже код, чтобы запустить пользовательский веб-сервер. Чтобы создать пользовательский веб-сервер, нам нужно использовать протокол HTTP.
По своей структуре протокол http имеет запрос "get", который возвращает файл на сервер. Если файл найден, то будет получен ответ 200.
Сервер будет запускаться на порту 8080 и принимать запросы веб-браузера по умолчанию.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | # Пример сервера Python 3 from http.server import BaseHTTPRequestHandler, HTTPServer import time hostName = "localhost" serverPort = 8080 class MyServer(BaseHTTPRequestHandler): def do_GET(self): self.send_response(200) self.send_header("Content-type", "text/html") self.end_headers() self.wfile.write(bytes("<html><head><title>https://g-soft.info</title></head>", "utf-8")) self.wfile.write(bytes("<p>Запрос: %s</p>" % self.path, "utf-8")) self.wfile.write(bytes("<body>", "utf-8")) self.wfile.write(bytes("<p>Это пример веб-сервера.</p>", "utf-8")) self.wfile.write(bytes("</body></html>", "utf-8")) if __name__ == "__main__": webServer = HTTPServer((hostName, serverPort), MyServer) print("Сервер запущен http://%s:%s" % (hostName, serverPort)) try: webServer.serve_forever() except KeyboardInterrupt: pass webServer.server_close() print("Сервер остановлен.") |
При открытии url типа http://127.0.0.1/example вызывается метод do_GET(). В этом методе мы отправляем веб-страницу вручную.
Переменная self.path возвращает запрашиваемый веб-браузером url. В данном случае это будет /