/
mialdr
/
python_advanced
Обзор
Документация
Войти
/
mialdr
/
python_advanced
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
module_24_debugging_2/lessons/2/_flask_profiler.py
74 строки
1 KB
Mikhail
module24 is solved
10 мар 2024, 00:29
10 мар 2024, 00:29
60e5e32
Код
Авторство
О чём код?
from flask import Flask import json import time import flask_profiler import decimal from sqlalchemy import create_engine engine = create_engine('sqlite:///flask_profiler.db') app = Flask(__name__) @app.route("/one") def one(): return "one" @app.route("/two") def two(): time.sleep(10) return "two" @app.route("/three") def three(): l = [] for i in range(1000000): l.append(i) return "three" @app.route("/four") def four(): return "four" app.config["flask_profiler"] = { "enabled": True, "storage": { "engine": "sqlalchemy", "db_url": "sqlite:///flask_profiler.db" }, "basicAuth": { "enabled": True, "username": "admin", "password": "admin" } } flask_profiler.init_app(app) class NewEncoder(json.JSONEncoder): def default(self, o): if isinstance(o, decimal.Decimal): return int(o) return super(NewEncoder, self).default(o) app.json_encoder = NewEncoder # в случае, если роут описан после flask_profiler.init_app(app.py), необходимо # применить декоратор, иначе он не будет обрабатываться профайлером @app.route('/five', methods=['GET']) @flask_profiler.profile() def five(): return "five" if __name__ == '__main__': app.run()