🏠 | 💻 IT | QA | Contents |

Как создать заглушку для REST API с помощью Flask

HTTP GET

По умолчанию Flask отвечает на GET.

Создадим файл server.py со следующим кодом

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

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

Запустить файл server.py можно будет командой

python server.py

Но традиционно испльзуется flask run, про который я рассказываю в статье «Первый проект на Flask» .

Если в Вашем окружении установлен Flask то Вы увидите

* Serving Flask app "server" (lazy loading) * Environment: production WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead. * Debug mode: off * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

Можете открыть браузер и ввести в строку поиска http://127.0.0.1:5000/

На экране должно появиться

Hello Flask!

А в консоли должно появиться

127.0.0.1 - - [15/Jun/2020 16:19:06] "GET / HTTP/1.1" 200 - 127.0.0.1 - - [15/Jun/2020 16:19:07] "GET /favicon.ico HTTP/1.1" 404 -

404 - так как я не добавил файл favicon.ico

Простой вебсервер на Flask

Создать такой элементарный сервер, который будет что-то отвечать на запросы бывает полезно, когда Вам нужно быстро протестировать приложение, которое прежде чем послать какую-то важную информацию запрашивает состояние сервера.

Вы можете ответить 200 и дальше слушать что присылает приложение.

from flask import request from flask import Flask app = Flask(__name__) @app.route('/') def index(): return 'Hello world' @app.route('/bestws') def cakes(): return 'HeiHei.ru!' @app.route('/heiheiru/holidays', methods = ['GET']) def heiheiru_holidays(): timestamp = request.args.get('timestamp') print(f"Кто-то сделал GET запрос на heihei.ru и передал время {timestamp}") return '200' @app.route('/heiheiru/fests', methods = ['GET','PUT', 'POST']) def heiheiru_fests(): epc = request.args.get('epc') print(epc) antenna = request.args.get('antenna') print(antenna) timestamp = request.args.get('timestamp') print(timestamp) userMemory = request.args.get('userMemory') print(userMemory) return '200' if __name__ == '__main__': app.run(debug=True, host='0.0.0.0')

Share in social media: