第二个论点的原因如下:
假设您正在设计一个网站,并且您/login是用户输入其用户名、密码、OpenID 等的页面。成功登录后,您可能希望将它们发送到/. 在 Flask 中,执行此操作的规范方法是:
return redirect(url_for('index'))
'index'您定义为处理程序的函数的名称在哪里/,例如,
@app.route('/')
def index():
return render_template('index.html')
如果您改为:
def index():
return render_template('index.html')
app.add_url_rule('/', None, index)
当您的用户明确请求时,它会正常工作/,但是当您的用户成功登录时,他们将面临可怕的错误消息并且必须/手动访问。
简而言之,这是正确的做法。
另外,你应该注意
@app.route('/')
def index():
return render_template('index.html')
和
def index():
return render_template('index.html')
app.add_url_rule('/', 'index', index)
完全相同,并且在最后两个片段中redirect(url_for('index'))都可以完美运行。