Flask url_for没有蓝图文件

时间:2016-01-17 19:04:44

标签: python flask

我已将所有网址存储在一个位置,以便更容易找到路线:

from main import app 
from main import views as main
from auth import views as auth

METHODS = ['GET', 'POST']

app.add_url_rule('/',
                 view_func=main.index,
                 methods=METHODS)

# Auth & Registration
app.add_url_rule('/login',
                 view_func=auth.login,
                methods=METHODS)

app.add_url_rule('/register',
                 view_func=auth.index,
                 methods=METHODS)

app.add_url_rule('/forgot_password',
                 view_func=auth.forgot_password,
                 methods=METHODS)

以下是有效的:

redirect(url_for('login'))

但是,如果我在两个不同的包中使用相同的方法,我可以执行以下操作:

redirect(url_for('auth.index'))
redirect(url_for('main.index'))

或者我只能使用蓝图?

1 个答案:

答案 0 :(得分:0)

add_url_rule的一个输入是端点,您将传递给url_for。因此,如果您查看terminal multiplexer,您将看到第二个(非关键字)参数是结束点。默认情况下,它会将其设置为您作为view_func传递的函数的名称。

app.add_url_rule('/register', 'auth.index', view_func=auth.index, methods=METHODS)

您也可以简单地将view_func作为位置参数传递

app.add_url_rule('/register', 'auth.index', auth.index, methods=METHODS)