Flask:@app究竟是什么

时间:2016-02-11 09:09:29

标签: python flask syntax

我正在关注this Flask 教程。我们声明类似@app.route('/')的路由,但python中的变量不能包含@个字符。
我很困惑@app是什么以及它来自哪里。这是代码段:

from app import app

@app.route('/')
@app.route('/index')
def index():
    return "Hello, World!"

2 个答案:

答案 0 :(得分:12)

@告诉Python使用index()中定义的装饰器装饰函数app.route()

基本上,装饰器是一个修改另一个函数行为的函数。作为一个玩具示例,请考虑这一点。

def square(func):
    def inner(x):
        return func(x) ** 2
    return inner

@square
def dbl(x):
    return x * 2 

现在 - 调用dbl(10)将不会返回20,而是40020**2)。

This是一个很好的循序渐进。装饰者的解释。

答案 1 :(得分:11)

这是decorator。当由@app.route('/')(这是一个函数)修饰时,调用index()变得与调用app.route('/')(index)()相同。

这是another link可以在python wiki中解释它。