当用户点击链接时,我希望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 loop 。
解决
为了设置变量,我告诉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' ) )
在Flask中。因为contact是def contact_msg_page
中的参数,所以Python中名为contact的局部变量设置为{{ contact }}
(用户单击的链接)。然后,我将名为contact_clicked
或session['contact_clicked']
的会话变量设置为等于Python变量contact
。既然我已经这样做了,我可以访问会话变量contact_clicked
并完成我想用它做的所有事情。 (例如,当用户点击其联系人列表中的联系人时,它会选择他们以点击用户发送给他们的消息。)
答案 0 :(得分:0)
只需在for循环之前声明变量:
randomStuff = int(0)
for i in range(0, 100):
randomStuff += 1
print randomStuff
希望这有帮助,
杰森。
答案 1 :(得分:0)
已解决继续阅读以了解如何...
为了设置变量,我告诉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' ) )
在Flask中。因为contact是def contact_msg_page
中的参数,所以Python中名为contact的局部变量设置为{{ contact }}
(用户单击的链接)。然后,我将名为contact_clicked
或session['contact_clicked']
的会话变量设置为等于Python变量contact
。既然我已经这样做了,我可以访问会话变量contact_clicked
并完成我想做的所有事情(例如,当用户点击其联系人列表中的联系人时,它会选择他们发送消息由点击它们的用户发送给他们的)&lt; - 那是满口的。
我希望这可以帮助那些遇到类似问题的人。如果有人想问任何问题,请离开。我很乐意帮助你。