оператор if для определения того, какой маршрут используется в шаблоне jinja, flask - PullRequest
1 голос
/ 11 июля 2020

У меня есть два представления, в которых используется один шаблон.

@users.route("/one")
@login_required
def one(username):
     return render_template('follower.html') 

и

@users.route("/two")
@login_required
def two(username):
     return render_template('follower.html') 

в шаблоне jinja (последователь. html), я пытаюсь выполнить программу если первый маршрут используется следующим образом:

{% if url_for('users.one')  %}
    execute program
{% endif %}

, но, похоже, я делаю это неправильно. Пожалуйста, как правильно определить, какой маршрут используется?

Ответы [ 3 ]

2 голосов
/ 12 июля 2020

Вы можете просто отметить request.endpoint в своем шаблоне, как показано ниже:

{% if request.endpoint == 'one'  %}
    execute program
{% endif %}

Таким образом, вы не будете вносить никаких изменений в свои функции просмотра.

0 голосов
/ 12 июля 2020

Один простой способ выполнить sh это - передать флаг. Например,

@users.route("/one")
@login_required
def one(username):
    return render_template('follower.html', one=True)

, затем проверьте его в шаблоне

{% if one %}
    execute program
{% endif %}

из two() вы должны добавить one=False.

0 голосов
/ 11 июля 2020

У вас не может быть двух функций с одинаковым именем - они обе имеют имена two.

...