[英]When working with blueprints, why do decorators required brackets?
我有一個藍圖應用程序,我正在嘗試集成Flask-Security-Too 。 在我的藍圖中,我有兩條路線:
@core_bp.route("/")
@auth_required
def home():
print("test")
return render_template('/core_bp/index.html')
@core_bp.route("/get-projects")
@auth_required
def get_projects():
searchTerm = request.args.get("search")
data = [
"buchsweg 5" ,
"tannenweg 1"
]
return jsonify(data)
在這種情況下,我收到以下錯誤:
AssertionError: View function mapping is overwriting an existing endpoint function: core_bp.wrapper
但是當我用@auth_required()
替換auth_required
時它工作得很好嗎? 它現在正在工作,但很高興了解它為什么工作?
您需要括號,因為可以將 3 個可選參數傳遞給裝飾器,如第 275 行所示
https://github.com/Flask-Middleware/flask-security/blob/master/flask_security/decorators.py
一般來說some_decorator
是一個常規的裝飾器,而some_decorator()
是一個可調用的,它返回一個裝飾器,如前一個問題中所述:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.