使用 Python 的 Flask 库计算每个页面加载的执行时间的好方法是什么?
我正在考虑在 views/__ init__.py 中放置一个开始计时器:
@app.before_request
def before_request():
g.start = time.time()
但是我应该把计时器的结束部分放在哪里来计算差值,以及如何将它放入我的 html 模板的页脚中?
谢谢。
最佳答案
其他答案基本上是正确的,但现在已经过时了。
以下适用于 Python 3.6/3.7 和 Flask 1.0.2:
import time
from flask import g
@app.before_request
def before_request():
g.start = time.time()
@app.after_request
def after_request(response):
diff = time.time() - g.start
if ((response.response) and
(200 <= response.status_code < 300) and
(response.content_type.startswith('text/html'))):
response.set_data(response.get_data().replace(
b'__EXECUTION_TIME__', bytes(str(diff), 'utf-8')))
return response
通过使用 response.set_data
,内容长度将由 Flask 正确更新。另请注意字节串的使用和编码。
关于python - 计算Python的Flask中每个页面的执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12273889/