- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
after_request
的文档说“从 Flask 0.7 开始,这个函数可能不会在请求结束时执行,以防发生未处理的异常。”有没有办法改变这一点,以便即使是未处理的异常也会调用 after_request
函数,例如记录回溯?
最佳答案
使用teardown_request
相反。
Register a function to be run at the end of each request, regardless of whether there was an exception or not.
These functions are not allowed to modify the request, and their return values are ignored. If an exception occurred while processing the request, it gets passed to each teardown_request function.
from flask import Flask
app = Flask(__name__)
# unhandled teardown won't happen while in debug mode
# app.debug = True
# set this if you need the full traceback, not just the exception
# app.config['PROPAGATE_EXCEPTIONS'] = True
@app.route('/')
def index():
print(test)
@app.teardown_request
def log_unhandled(e):
if e is not None:
print(repr(e))
# app.logger.exception(e) # only works with PROPAGATE_EXCEPTIONS
app.run('localhost')
请注意,在调用 teardown_request
时,回溯已经超出范围;只有异常(exception)可用。您可以通过设置 PROPAGATE_EXCEPTIONS = True
来更改它,尽管这可能会产生性能问题。鉴于 Flask 已经记录了回溯,配置日志记录可能比尝试自己记录更容易。
关于python - 使用 Flask 的 "after_request"处理程序获取错误回溯,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31566195/
我是 Flask 的新手,正在学习 @app.after_request 和 @app.teardown_appcontext。我有一个 decorated view对于接受参数的 oauthlib,
我有两个 after_request 处理程序。就我而言,我需要在下一个之前开火。 @app.after_request def after_request_check_something(r
这个问题在这里已经有了答案: Basic flask application with after_request returns server error (1 个回答) 关闭 6 年前。 我有一
用标签after_request(f) 和before_request(f) 定义的函数在每个 请求之前和之后运行。是否可以定义仅针对特定请求集运行的函数? 例如,我希望一个函数仅在请求访问静态目录中
after_request 的文档说“从 Flask 0.7 开始,这个函数可能不会在请求结束时执行,以防发生未处理的异常。”有没有办法改变这一点,以便即使是未处理的异常也会调用 after_requ
from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return "k?" @app.a
我有以下网络应用: import bottle app = bottle.Bottle() @app.route('/ping') def ping(): print 'pong' r
我是 Flask 和 python 的新手。我有一堆 View 以 jsonify() 格式返回字典。对于这些 View 中的每一个,我想添加一个 after_request 处理程序来更改响应,以便
我希望能够在返回 HTTP 调用的响应之前访问请求对象。我想通过“teardown_request”和“after_request”访问请求: from flask import Flask ...
我们希望在每次请求后验证页面上没有转义的 HTML 或 XSS。在 Cucumber 中,我们有一个 AfterStep 可以执行此操作(只要当前页面与上一页不同)。 有什么办法吗? 编辑:参见 ht
我是一名优秀的程序员,十分优秀!