How can I pass arguments into redirect(url_for()) of Flask?

后端 未结 1 1809
后悔当初
后悔当初 2020-12-07 23:05

I\'m trying to understand how best to redirect and pass arguments using Flask

Below is my code, I\'m finding that x and y are not making it

相关标签:
1条回答
  • 2020-12-07 23:42

    The redirect is fine, the problem is with the found route. You have several ways to pass values to an endpoint: either as part of the path, in URL parameters (for GET requests), or request body (for POST requests).

    In other words, your code should look as follows:

    @app.route('/found/<email>/<listOfObjects>')
    def found(email, listOfObjects):
      return render_template("found.html",
          keys=email, obj=listOfObjects)
    

    Alternatively:

    @app.route('/found')
    def found():
      return render_template("found.html",
          keys=request.args.get('email'), obj=request.args.get('listOfObjects'))
    

    Also, your redirection should provide request parameters, not template parameters:

    return redirect(url_for('found', email=x, listOfObjects=y))
    

    Hope that helps.

    0 讨论(0)
提交回复
热议问题