Переменная шаблона ссылки в выражении 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 в вашем примере).