Автор оригинала: Pankaj Kumar.
Привет всем! В сегодняшней статье мы рассмотрим использование Http-сервера Python.
Этот модуль служит очень быстрым и простым способом запуска локального Http-сервера в вашей сети.
Ранее, в Python 2.7, этот модуль назывался Http Server
. Но с Python3 этот модуль был объединен в модуль http.server
.
Давайте начнем и запустим наш собственный Http-сервер!
Импорт модуля http-сервера Python
Этот модуль входит в состав стандартной библиотеки, поэтому нет необходимости устанавливать его на pip!
Чтобы импортировать этот модуль, просто используйте приведенную ниже инструкцию:
import http.server
Теперь вы все готовы к запуску сервера. Теперь давайте напишем немного кода для обслуживания файлов.
Запуск нашего Http-Сервера
Если вы просто хотите поделиться своими файлами и каталогами с другим пользователем, вы можете напрямую запустить сервер с помощью Python.
Перейдите в любой каталог, которым вы хотите поделиться, и запустите сервер оттуда, используя:
python -m http.server 9000
Здесь мы запускаем наш локальный Http-сервер с порта 9000.
Подключение к серверу Http
Теперь, чтобы подключиться к локальному серверу, необходимо выполнить следующие действия:
- Перейдите на серверную машину и узнайте IP-адрес сервера, используя
arp-a
в Windows илиip-a | grep inet
в Linux. - На удаленном клиенте просто введите
http://IP_ADDRESS:9000/
в вашем браузере и увидеть волшебство!
Выход
Обратите внимание, что вы можете просмотреть файлы сервера или даже загрузить их на клиентскую машину!
Запуск Http-сервера Python, который обслуживает пользовательский index.html файл
Хотя сервер по умолчанию удобен для прямого обмена файлами, вы можете настроить поведение сервера, запустив отдельный файл.
Например, мы будем запускать пользовательский Http-сервер, который использует http.server
и socket server
для TCP-связи.
MyHttpRequestHandler вызывает метод do_GET() для обслуживания запроса. Чтобы предоставить пользовательский файл для запроса, мы можем переопределить функцию, просто определив другой метод do_GET (), который возвращает другое значение.
# server.py import http.server # Our http server handler for http requests import socketserver # Establish the TCP Socket connections PORT = 9000 class MyHttpRequestHandler(http.server.SimpleHTTPRequestHandler): def do_GET(self): self.path = 'index.html' return http.server.SimpleHTTPRequestHandler.do_GET(self) Handler = MyHttpRequestHandler with socketserver.TCPServer(("", PORT), Handler) as httpd: print("Http Server Serving at port", PORT) httpd.serve_forever()
Если вы называете это как server.py
, вы можете запустить http-сервер с помощью:
python server.py
Поскольку мы определили нашу пользовательскую функцию do_GET (), мы можем обслуживать HTML-файл домашней страницы с помощью нашего сервера, который index.html в данном случае. Кроме того, если сервер работает в вашей системе, вы можете напрямую получить доступ к серверу с помощью localhost:<номер порта> вместо использования IP-адреса.
Вывод
В этой статье мы узнали, как настроить SimpleHTTPServer в Python, используя модуль http.server
. Мы также узнали, как определить метод do_GET() для обслуживания пользовательских файлов, когда мы делаем запрос на наш сервер.
Рекомендации
- Документация По Python на Http-сервере