I have the below URL’s mapping to one form:
JavaScript
x
7
1
<a href="/home/downloads/application_one">Download Application</a>
2
<a href="/home/downloads/application_two">Download Application</a>
3
<a href="/home/downloads/application_three">Download Application</a>
4
<a href="/home/downloads/application_four">Download Application</a>
5
6
<form method="POST" action="{{ url_for('home.downloads') }}">
7
How do I pass
JavaScript
1
2
1
application_one, application_two, application_three, application_four
2
dynamically to “url_for” in form?
This is my route:
JavaScript
1
3
1
@download.route('/downloads/<application_name>', methods=['GET', 'POST'])
2
def downloads(application_name):
3
Advertisement
Answer
Pass it as second argument to url_for
JavaScript
1
2
1
{{ url_for('home.downloads', application_name = "YOUR DYNAMIC APP NAME") }}
2
Edit:
For the dynamic one, you simply pass the variable.
JavaScript
1
2
1
{{ url_for('home.downloads', application_name = application) }}
2
and when you are rendering the template, send your dynamic value.
JavaScript
1
3
1
application = "DO WHATEVER AND ASSIGN THE VALUE HERE"
2
return render_template("template.html", application = application )
3
Refer: https://flask.palletsprojects.com/en/2.1.x/quickstart/#url-building