使路由仅在烧瓶的调试模式下可访问

时间:2019-04-17 03:00:01

标签: python flask

我有一堆只希望在调试模式下访问的路由。是否有装饰器或其他允许我执行此操作的东西,或者我必须完全注释/删除代码? 示例:

@debug_only
@app.route("/send_data/<data>", methods=["GET", "POST"])
def send_data(data):
    return jsonfy("{'data': data}")

1 个答案:

答案 0 :(得分:2)

Flask为此没有提供任何内置装饰器。编写一个装饰器,检查current_app.debug,如果它不在调试模式下,则返回404。

from functools import wraps
from flask import current_app, abort

def debug_only(f):
    @wraps(f)
    def wrapped(**kwargs):
        if not current_app.debug:
            abort(404)

        return f(**kwargs)

    return wrapped

@app.route("/debug")
@debug_only
def debug_info():
    ...