Переменная шаблона ссылки в выражении Jinja
у меня есть маршрут, определенный следующим образом:
@app.route('/magic/<filename>')
def moremagic(filename):
pass
и теперь в шаблоне я хочу назвать этот маршрут, используя url_for() вот так:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('/magic/<filename>') }}">Click to see magic happen</a>
Я пробовал:
<a href="{{ url_for('/magic', filename={{ name }}) }}">Click to see magic happen</a>
что бросает!--4-->
может ли кто-нибудь предложить, как получить {{ name }}, который появляется в шаблоне в url_for() Так что, когда я нажимаю, я называю правильный app.route?
1 ответов
все, что внутри {{ ... }}-Это выражение, подобное Python. Вам не нужно использовать другой {{ ... }} внутри этого для ссылки на переменные.
сбросить лишние скобки:
<h1>you uploaded {{ name }}<h1>
<a href="{{ url_for('moremagic', filename=name) }}">Click to see magic happen</a>
(заметьте, что тег url_for() функция принимает конечную точку имя, не путь URL; имя по умолчанию имя функции,moremagic в вашем примере).