使用Flask重定向获取下一个URL

3

我正在按照这里的信息操作,一切看起来都很好,但我需要知道如何在倒数第二行从新的登录页面中加载最初请求的URL。

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if not models.check_auth(username, password):
            error = 'Please try again.'
        else:
            return redirect(url_for(**next**))
    return render_template('login.html', error=error)

你可以尝试使用以下代码:return redirect(request.args.get("next") or url_for("index")) - mechanical_meat
我刚刚意识到这些值是通过URL传递的。谢谢! - CNorlander
1个回答

1
尝试这个:

试一下:

@app.route('/login', methods=['GET', 'POST'])
def login():
    error = None
    if request.method == 'POST':
        username = request.form['username']
        password = request.form['password']
        if not models.check_auth(username, password):
            error = 'Please try again.'
        else:
            return redirect(request.args.get("next") or url_for("admin"))
            #               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    return render_template('login.html', error=error)

这似乎可以工作,因为信息正在传递,但我收到了一个BuildError:BuildError:无法为端点u'http://172.30.5.254/admin'构建URL。您是指代替“admin”吗? - CNorlander

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接