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

3 min read

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

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

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

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

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

pip install flask

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

source venv/bin/activate

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

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

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

python server.py

По умолчанию, 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. Ее главная задача - держать постоянное соединение и доставлять вам всю полученную от любого человека информацию. Запустите ее командой, передав в качестве параметра любой свободный порт:

./ngrok http 4567

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

Forwarding http://7e9ea9dc.ngrok.io -> 127.0.0.1:4567

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