Flask 执行函数,即使它从未在代码中调用(仅定义)

Flask executes function even though it is never called in code (only defined)

查看 Flask 的“hello world”示例代码(刚开始使用它),它是:

from flask import Flask

app = Flask(__name__)

@app.route('/')

def hello_world():
    return 'Hello'

if __name__ == '__main__':
    app.run()

当我 运行 它(在 Pycharm 中)并在我的浏览器中转到本地主机时,它显示“你好”。

但是代码中从来没有调用过这个函数,只是定义了,所以我不明白为什么要执行它。

当您在浏览器中访问页面时,或使用某种 HTTP 请求客户端。您正在访问 root,即 /

这里,你定义了一个路由:@app.route('/'),指向函数hello_world.

正在调用此函数,因为您在访问该页面时正在访问/,即根目录。

如果你去 host:port/randomroute,你会得到一个 404,因为没有为此定义路由。