【问题标题】:Get next URL using flask redirect使用烧瓶重定向获取下一个 URL
【发布时间】:2025-12-22 03:00:12
【问题描述】:

我正在关注这个information here,一切似乎都很好,但我需要知道如何从倒数第二行的新登录页面加载最初请求的 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"))吗?
  • 我刚刚意识到这些值是在 url 中传递的。谢谢!

标签: python flask


【解决方案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: could not build url for endpoint u'172.30.5.254/admin'。您指的是“管理员”吗?