在以下代码中,app.run()如何发现hello()存在?我浏览了代码,找不到答案。我认为hello()直到被调用才不会添加到路由列表中,但是如何调用它?
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World!"
if __name__ == "__main__":
app.run()
我对Flask尤其不感兴趣。我只想自己实现类似的功能。
这种设计模式叫什么?
答案 0 :(得分:3)
您的假设是错误的。装饰器本身是可执行代码,当装饰的函数被定义时即在导入时被调用。装饰器中的代码然后可以将路由添加到其注册表中。