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) }}>
Related posts on python :
- python – ImportError: No module named encodings
- python – Bad operand type for unary +: ‘str’
- sdl – How to suppress console output in Python?
- python – No pyvenv.cfg file
- python mpl_toolkits installation issue
- python 3.x – Merge multiple JSON files (more than two)
- python – Pyspark: show histogram of a data frame column
- python – Save Numpy Array using Pickle
- python 3.x – Virtualenv – workon command not found