3 шага для быстрого старта сервера Flask
В этой статье я раскрою пошаговую инструкцию, как быстро запустить веб-сервер Flask с Python и начать баловаться с его возможностями.
В первую очередь, надо создать новый скрипт, который и сделает все для нас. Итак, в нем должно быть реализовано следующее:
- с помощью декоратора @app.route заданы функции обработки запросов к конкретным адресам (указываются в скобках после декоратора);
- создан объект приложения, который отвечает за логику работы web-сервера;
- вызван его метод run для старта сервера.
Итоговый скрипт имеет следующий код:
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return '<h1>site main page</h1>' if __name__=='__main__': app.run(debug=True)
В строке app = Flask(__name__) как раз и создается объект приложения (конструктор в качестве аргумента получает имя главного модуля), для которого запускается метод run (app.run()), инициируя старт сервера. Кроме того, пока у нас имеется одна функция, обрабатывающая обращение к корню сайта (index).
Запустив сценарий, получим примерно такой вывод:
Если в браузере вы обратитесь по адресу http://127.0.0.1:5000/ (указан на картинке) получите вывод функции index:
Теперь остановим сервер (для этого достаточно нажать комбинацию CTRL+C) и продемонстрируем способ передачи данных сценарию. Для этого перепишем последний:
from flask import Flask from flask import request app = Flask(__name__) @app.route('/') def index(): return '<h1>site main page</h1>' @app.route('/args') def get_args(): name = request.args.get("name") surname = request.args.get("surname") return f'<h1>My name - {name} and surname - {surname} </h1>' @app.route('/welcome/<id>') def welcome(id): return f'<h2>Hello, user with id={id}</h2>' if __name__=='__main__': app.run(debug=True)
Итак, мы создали два новых обработчика, принимающих данные по-разному. Функция welcome получает id при обращении по адресу /welcome/id. Имитация этих действий в браузере приведет к следующему результату:
Иной способ реализован в функции get_args, которая для получения Get аргументов использует объект request из модуля flask. Наберем в адресной строке http://127.0.0.1:5000/args?name=Ivan&surname=Ivanov и получим ответ:
Следует отметить, что последний вариант передачи параметров более гибкий. Однако еще более практичным является использование протокола Post, но это немного сложнее и будет раскрыто в последующих статьях.