Python 从dict烧瓶和jinja中提取值
在我的模板中,我有Python 从dict烧瓶和jinja中提取值,python,flask,jinja2,Python,Flask,Jinja2,在我的模板中,我有 <p>{% for dict_item in MySQL_Dict %} {% for key, value in dict_item.items() %} {{value}} {% endfor %} {% endfor %}</p> {MySQL中dict\u项的%u\u dict%} {%表示键,dict_item.items()中的值%} {{value}} {%endfor%} {%endfor%} 哪个输出43.89
<p>{% for dict_item in MySQL_Dict %}
{% for key, value in dict_item.items() %}
{{value}}
{% endfor %}
{% endfor %}</p>
{MySQL中dict\u项的%u\u dict%}
{%表示键,dict_item.items()中的值%}
{{value}}
{%endfor%}
{%endfor%}
哪个输出
43.8934276-103.3690243 47.052060-91.639868
?这可能吗 使用列表理解:
[[value for key,value in dict_item.items()]for dict_item in MySQL_dict]
将返回每个字典中所有值的列表。最简单的方法是在后端对其进行格式化,并以您想要的方式将其传递给jinja。事实上,将复杂逻辑放在后端会更好,而不是前端性能更好,在jinja的情况下,您不必传入python方法,因此它更干净。。。其他模板框架(如tornados)包括所有pythons基函数,因此您不必像下面的示例那样传入它们。另一种方法是将
str.join
、len
和range
方法传递给jinja e.xjoin=str.join,len=len,range=range
,然后。。。我猜MySQL_Dict是一个2d数组,因此是双for循环
MySQL中dict_项的{%fordict%}//dict_项==[{},{},…]
{%表示范围内的i(len(dict_item))%}//dict_item[i]=={some object}
{{,“.join(dict_项[i][“纬度”]、dict_项[i][“经度”])}}
{%endfor%}
{%endfor%}
我认为Jinja不允许列表理解。您能提供一个dict_项目的示例吗?它看起来像是另一个dict中的值。我在任何地方都没有定义dict_项,它只在那里使用。好的,说得好。我会在后端试试。不管怎样,这就是它最终的结局。你写的代码最后给了我500个错误,顺便说一句,仅供参考:没有所有信息测试代码并不难,因为我自己无法运行,但基本逻辑仍然正确。如果你能找出上面代码的问题并进行编辑,我很乐意做出更改谢谢!我使用了您的逻辑和建议,将所有计算移到后端,然后将值传递给模板。使用Jinja模板更容易、更容易混淆。谢谢没问题:-)很乐意帮忙
<p>
{% for dict_item in MySQL_Dict %} // dict_item == [{}, {}, ...]
{% for i in range(len(dict_item)) %} // dict_item[i] == {some object}
{{",".join(dict_item[i]["latitude"], dict_item[i]["longitude"])}}
{% endfor %}
{% endfor %}
</p>