python – Create dynamic URLs in Flask with url_for()

python – Create dynamic URLs in Flask with url_for()

It takes keyword arguments for the variables:

url_for(add, variable=foo)
url_for(remove, variable=foo)

The flask-server would have functions:

@app.route(/<variable>/add, methods=[GET, POST])
def add(variable):

@app.route(/<variable>/remove, methods=[GET, POST])
def remove(variable):

url_for in Flask is used for creating a URL to prevent the overhead of having to change URLs throughout an application (including in templates). Without url_for, if there is a change in the root URL of your app then you have to change it in every page where the link is present.

Syntax: url_for(name of the function of the route,parameters (if required))

It can be used as:

@app.route(/index)
@app.route(/)
def index():
    return you are in the index page

Now if you have a link the index page:you can use this:

<a href={{ url_for(index) }}>Index</a>

You can do a lot o stuff with it, for example:

@app.route(/questions/<int:question_id>):    #int has been used as a filter that only integer will be passed in the url otherwise it will give a 404 error
def find_question(question_id):  
    return (you asked for question{0}.format(question_id))

For the above we can use:

<a href = {{ url_for(find_question ,question_id=1) }}>Question 1</a>

Like this you can simply pass the parameters!

python – Create dynamic URLs in Flask with url_for()

Refer to the Flask API document for flask.url_for()

Other sample snippets of usage for linking js or css to your template are below.

<script src={{ url_for(static, filename=jquery.min.js) }}></script>

<link rel=stylesheet type=text/css href={{ url_for(static, filename=style.css) }}>

Leave a Reply

Your email address will not be published.