如何从 for 循环内部设置一个可以从 for 循环外部访问的变量 [Jinja]

How to set a variable from inside a for loop that can be accessed from outside the for loop [Jinja]

当用户点击 link 时,我希望 Jinja 设置一个名为 {{ contact_clicked }} 的变量,它等于 {{ contact }}.

我可以<a href="/?{% contact_clicked = contact %}">.....</a>。但是,该变量在 for 循环之外是不可访问的。

我尝试创建一个列表,然后将一个变量附加到列表中,然后访问列表中的第一个变量。但是,当页面重新加载(或任何其他时间)时,列表不会擦除,因此变量将永远设置。

编辑 1:
我的 for 循环看起来像这样:

    {% set contact_clicked = "" %}

    {% for contact in contact_list %}
        {% if contact in fake_list %}
            <h4 style="color: rgb(200,100,100)"> {{ contact }} NO SUCH ACCOUNT </h4>
        {% else %}
            <a href="/?{% contact_clicked = contact %}"> <h4 style="color: rgb(200,200,200)"> {{ contact }} </h4> </a>
        {% endif %}
    {% endfor %}

我说的是 Jinja2 for 循环,不是 Python for 循环

只需在for循环之前声明变量即可:

randomStuff = int(0)

for i in range(0, 100):
   randomStuff += 1

print randomStuff

希望对您有所帮助,

贾森.

已解决继续阅读以了解如何...
为了设置变量,我告诉 Jinja 将我引导至 /contact_msg/{{ contact }}。假设我单击了一个名为 'bob' 的联系人。我会被定向到 /contact_msg/bob。代码如下

{% for contact in contact_list %}
    {% if contact in fake_list %}
        <h4 style="color: rgb(200,100,100)"> {{ contact }} NO SUCH ACCOUNT </h4>
    {% else %}
        <a href="/contact_msg/{{ contact }}"> <h4 style="color: rgb(200,200,200)"> {{ contact }} </h4> </a>
    {% endif %}
{% endfor %}

然后,在执行此操作时,用户会被定向到

@app.route('contact_msg/<contact>')
def contact_msg_page( contact ):
    session['contact_clicked'] = contact
    return redirect( url_for( 'home' ) )

在烧瓶中。因为 contact 是 def contact_msg_page 中的参数,所以 Python 中名为 contact 的局部变量被设置为 {{ contact }}(用户单击的 link)。然后,我将名为 contact_clickedsession['contact_clicked'] 的会话变量设置为等于 Python 变量 contact。现在我已经完成了,我可以访问会话变量 contact_clicked 并用它做所有我想做的事情(例如,当用户点击他们的联系人列表中的联系人时,它选择他们有消息由点击它们的用户发送给它们)<-- 太啰嗦了。

我希望这对遇到与我类似问题的任何人有所帮助。如果有人想问任何问题,请问。我很乐意帮助你。