Ik probeer te begrijpen hoe ik het beste argumenten kan omleiden en doorgeven met Flask
Hieronder staat mijn code, ik merk dat x
en y
de sjabloon niet halen.
Is mijn syntaxis correct? Mis ik iets fundamenteels? Ik kan de sjabloon renderen, maar ik wil omleiden naar de url /found
, in plaats van alleen de sjabloon terug te sturen voor find.html
@app.route('/found')
def found(email,listOfObjects):
return render_template("found.html",
keys=email,obj=listOfObjects)
@app.route('/find', methods=['GET','POST'])
def find():
if request.method == 'POST':
x = 3
y = 4
return redirect(url_for('found',keys=x,obj=y))
return render_template("find.html")
Antwoord 1, autoriteit 100%
De omleiding is prima, het probleem zit in de found
route. U heeft verschillende manieren om waarden door te geven aan een eindpunt: ofwel als onderdeel van het pad, in URL-parameters (voor GET-verzoeken) of verzoektekst (voor POST-verzoeken).
Met andere woorden, uw code zou er als volgt uit moeten zien:
@app.route('/found/<email>/<listOfObjects>')
def found(email, listOfObjects):
return render_template("found.html",
keys=email, obj=listOfObjects)
Alternatief:
@app.route('/found')
def found():
return render_template("found.html",
keys=request.args.get('email'), obj=request.args.get('listOfObjects'))
Bovendien moet uw omleiding verzoekparameters bevatten, geen sjabloonparameters:
return redirect(url_for('found', email=x, listOfObjects=y))
Hopelijk helpt dat.