在Flask中,为什么这个hello world应用程序有效?

时间:2012-10-03 19:54:10

标签: python flask

查看Flask网站上的默认“Hello world”脚本:

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

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

我对编程很新,所以我不明白这个脚本是如何工作的 - hello()函数不会在任何地方调用,因此Flask只显示找到的第一个函数的输出?如果我想在页面上显示两个或三个函数的输出怎么办?

2 个答案:

答案 0 :(得分:10)

这一行:@app.route("/")会将该函数注册为'/'路由的处理程序。当浏览器查询“/”(根)时,应用程序会响应“Hello World!”。

@语法称为装饰器。

How to make a chain of function decorators?

答案 1 :(得分:1)

例如看一下这段代码:

def decorator(func):
    print "this function is called for " + func 
    def wrapper(*args, **kwargs):
            return func(*args, **kwargs)
    return wrapper

@decorator
def hello():
    return "Hello"

将它保存到一个文件中并尝试一下,你会看到在定义你好之后你会看到这样的东西:

  

调用此函数<函数你好0x241c70>