使用烧瓶使路由只能在调试模式下访问

Ste*_*ico 3 python flask

我有一堆我只想在调试模式下访问的路由。是否有装饰器或允许我这样做的东西,或者我是否必须完全注释/删除代码?例子:

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

dav*_*ism 7

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():
    ...
Run Code Online (Sandbox Code Playgroud)