Rzozi
Rzozi

Reputation: 137

Flask redirect to URL with variable

I want to make a redirection to a URL and pass variable 'file' to it , can someone please help . Here is the view :

@app.route('/api/uploads/<string:file>/', methods=['GET','COPY']) 
def download(file):
   sub = db.session.query(func.max(Content.Hits).label('max_hit')).subquery()
  contenu = db.session.query(Content).join(sub, sub.c.max_hit == Content.Hits).all()
name1 = contenu[0].name

if name1 == file:
   return redirect('http://192.168.198.134:5000/api/uploads/<string:file>', file)

else:   
    return send_from_directory(UPLOAD_FOLDER, file) 

Upvotes: 4

Views: 18564

Answers (1)

Martijn Pieters
Martijn Pieters

Reputation: 1121914

This is what the url_for() function is for:

from Flask import url_for

redirect(url_for(download, file=file))

url_for() takes the endpoint name of your view (by default the name of your function, here download), and additional keyword arguments to provide values for the parameters.

Also see the URL Building section in the Quickstart documentation.

Upvotes: 8

Related Questions