我已将所有网址存储在一个位置,以便更容易找到路线:
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'))
或者我只能使用蓝图?
答案 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)