Создать локальный сервер python

HttpServer в качестве простого HTTP-сервера в Python

Этот модуль служит очень быстрым и простым способом запустить локальный Http-сервер в вашей сети.

Ранее в Python 2.7 этот модуль назывался HttpServer . Но в Python3 этот модуль был объединен с модулем http.server . Давайте начнем и запустим наш собственный Http-сервер.

Http Server

Импорт модуля httpserver

Этот модуль входит в состав стандартной библиотеки, поэтому устанавливать его не нужно. Чтобы импортировать этот модуль, просто используйте следующую инструкцию:

Теперь все готово к запуску сервера. Теперь давайте напишем немного кода для обслуживания файлов.

Запуск HTTP-сервера

Если вы просто хотите поделиться своими файлами и каталогами с другим пользователем, вы можете напрямую запустить сервер с помощью Python.

Перейдите в любой каталог, которым вы хотите поделиться, и запустите сервер оттуда, используя:

Здесь мы запускаем наш локальный Http-сервер на порту 9000.

Подключение

Теперь, чтобы подключиться к локальному серверу, необходимо проделать следующие шаги:

  1. Зайдите на сервер и узнайте IP-адрес сервера с помощью arp -a в Windows или ip -a | grep inet в Linux.
  2. На удаленном клиенте просто введите http://IP_ADDRESS:9000/ в своем браузере.

Базовый Http-Сервер

Обратите внимание, что вы можете просмотреть файлы сервера или даже загрузить их на клиентскую машину.

список файлов

Запуск HttpServer, который обслуживает настраиваемый файл index.html

Хотя сервер по умолчанию удобен для прямого обмена файлами, вы можете настроить сервер, запустив отдельный файл.

Например, мы будем запускать собственный Http-сервер, который использует http.server и socketserver для связи 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-сервер, используя:

домашняя страница

Поскольку мы определили нашу пользовательскую функцию do_GET(), мы можем обслуживать HTML-файл домашней страницы, используя наш сервер, которым в данном случае является index.html. Также, если сервер работает в вашей системе, вы можете напрямую получить доступ к серверу, используя localhost: вместо использования IP.

Источник

Пишем простой сервер на Python

Ну, начнем как и везде с определений, берите тетрадь и ручку сейчас начнется нудятина. Чтобы мы cмогли написать свой сервер, нужно для начала понимать как он вообще работает, ловите определение:

Сервер – это программное обеспечение, которое ожидает запросов клиентов и обслуживает или обрабатывает их соответственно.

Если объяснять это своими словами, представьте фургон с хот-догами(сервер), проголодавшись, вы(клиент) подходите и говорите повару, что вы хотите заказать(запрос), после чего повар обрабатывает, что вы ему сказали и начинает готовить, в конечном итоге вы получаете свой хот-дог(результат) и сытый радуетесь жизни. Для наглядности посмотри схему.

Околопрактика

Для написания сервера мы будем использовать Python и модуль Socket.

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

Создайте два файла в одной директории:

Практика

Пишем код для серверной части, так что открывайте файл socket_server.py.

Начнем с импорта модуля и создания TCP-сокета:

Далее весь код будет с комментариями:

s.bind(('localhost', 3030)) # Привязываем серверный сокет к localhost и 3030 порту. s.listen(1) # Начинаем прослушивать входящие соединения conn, addr = s.accept() # Метод который принимает входящее соединение.

Добавим вечный цикл, который будет считывать данные с клиентской части, и отправлять их обратно.

while True: # Создаем вечный цикл. data = conn.recv(1024) # Получаем данные из сокета. if not data: break conn.sendall(data) # Отправляем данные в сокет. print(data.decode('utf-8')) # Выводим информацию на печать. conn.close()

Переходим к клиентской части, весь код теперь пишем в файле socket_client.py.

Начало у клиентской части такое-же как и у серверной.

import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

Далее подключимся к нашему серверу и отправим сообщение «Hello. Habr!».

s.connect(('localhost', 3030)) # Подключаемся к нашему серверу. s.sendall('Hello, Habr!'.encode('utf-8')) # Отправляем фразу. data = s.recv(1024) #Получаем данные из сокета. s.close()

Слева сервер, справа клиент

Заключение

Вот мы с вами и написали свой первый сервер, рад был стараться для вас, ниже будет готовый код.

socket_server.py:

import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.bind(('localhost', 3030)) # Привязываем серверный сокет к localhost и 3030 порту. s.listen(1) # Начинаем прослушивать входящие соединения. conn, addr = s.accept() # Метод который принимает входящее соединение. while True: data = conn.recv(1024) # Получаем данные из сокета. if not data: break conn.sendall(data) # Отправляем данные в сокет. print(data.decode('utf-8')) conn.close()

socket_client.py:

import socket s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s.connect(('localhost', 3030)) # Подключаемся к нашему серверу. s.sendall('Hello, Habr!'.encode('utf-8')) # Отправляем фразу. data = s.recv(1024) #Получаем данные из сокета. s.close()

Источник

Простой веб-сервер с использованием Python и Flask

Александр Менщиков

Существует множество способов поднять свой собственный веб-сервер, который будет обрабатывать HTTP запросы пользователей и возвращать им в браузеры результат.

Поскольку мы используем Python в качестве основного языка, библиотеку, упрощающую нам создание веб-сервера, выберем тоже из мира Python.

Flask — это инструмент для веб-сайтов на языке Python. Представляет из себя микрофреймворк со встроенным веб-сервером. Договоримся, что вы используете Linux в качестве операционной системы, либо знаете как выполнить аналоги команд в Windows.

Установка необходимых библиотек

В предыдущей статье вы уже установили и настроили python, pip и virtualenv. Осталось загрузить сам Flask:

Если вы желаете работать с виртуальными окружениями, перейдите в директорию с ним и выполните команду:

Чтобы проверить все ли правильно установилось, вы можете создать файл server.py со следующим содержимым:

from flask import Flask app = Flask(__name__) @app.route(«/») def hello(): return «Hello World!» if __name__ == «__main__»: app.run()

Выполнить его можно командой:

По умолчанию, Flask работает на порту 5000. Перейдите по адресу http://localhost:5000 в браузере. Если вы все сделали правильно, на экране отобразится надпись «Hello World!».

Flask позволяет делать много замечательных вещей, например, обрабатывать GET и POST параметры. Более подробно можно ознакомиться со всеми функциями в официальной документации:

Модифицируем скрипт таким образом, чтобы он принимал имя пользователя и выводил на экран приветствие:

from flask import Flask app = Flask(__name__) @app.route(«/<username>», methods=[‘GET’]) def index(username): return «Hello, %s!» % username if __name__ == «__main__»: app.run(host=’0.0.0.0′, port=4567)

Теперь скрипт будет работать на 4567 порту, а также принимать от пользователя имя в адресной строке. Перейдите в браузере по ссылке: http://localhost:4567/yourname Вы увидите ответ: «Hello, yourname». Это значит, что сервер успешно работает и возвращает ожидаемую строку.

Настраиваем прокси

Чтобы ваш сайт был доступен другим людям, нужно иметь внешний IP адрес. Если вы знаете, что это такое или у вас есть VPS, вы можете настроить все самостоятельно. Если же вы слышите эти слова первый раз — воспользуйтесь более простым, хотя и не очень универсальным методом, который хорошо описан тут. Суть данного метода заключается в использовании прокси сервера.

В качестве прокси, будем использовать бесплатную программу ngrok. Ее главная задача — держать постоянное соединение и доставлять вам всю полученную от любого человека информацию. Запустите ее командой, передав в качестве параметра любой свободный порт:

В ответ вы получите несколько строчек информации, среди которой будет нечто подобное:

Адрес http://7e8ea9dc.ngrok.io можете смело пересылать своим друзьям, пройдя по нему, они попадут на ваш сайт.

Read more

We talk about interesting technologies and share our experience of using them.

Источник

Читайте также:  Создать свой css файл
Оцените статью