Flask Jinja模板循环:错误没有显示

时间:2017-06-04 09:08:45

标签: python google-maps-api-3 flask jinja2

我正在尝试运行googlemaps API地图,仅当有可用的GPS值时才会运行。

检查是否有GPS,如果没有,则检查错误1:

error1 = None
GPS =[]
try:
    GPS = gd.get_gps(request.form['address'])
    if len(GPS) == 0:
        error1 = 'No GPS data'
    else:
        GPS.append(GPS)
except:
    error1 ='No GPS data'
    pass
return render_template('Client_Details.html', error1 =error1,GPS=GPS)

这是模板:

{% if error1 %}
<p class='alert'>{{ error1 }}</p>
{% elif GPS %}
<div id = "location">
<caption> Location <caption>
{{googlemap("map_name", lat=GPS[0], lng= GPS[1], zoom=17, maptype= 'SATELLITE', markers=[(GPS[0], GPS[1])])}}
{% endif %}

如果有可用的GPS并且地图显示,则此方法有效,但如果没有GPS(即GPS列表为空),则表示error1没有显示,但是给我这个错误:

AttributeError: lat and lng required

1 个答案:

答案 0 :(得分:0)

您正在以一种奇怪的方式回收GPS变量,尽量避免这种情况。

error1 = None
GPS = []

try:
    form_coordinates = gd.get_gps(request.form['address'])
    if not form_coordinates:
        error1 = 'No GPS data'
    else:
        GPS.append(form_coordinates)
except:
    error1 = 'No GPS data'

return render_template('Client_Details.html', error1=error1, GPS=GPS)

另外,使用jinja2 length函数检查是否有任何坐标。

{% if GPS is defined and GPS|length > 0 %}
<div id="location">
<caption> Location </caption>
{{googlemap("map_name", lat=GPS[0], lng=GPS[1], zoom=17, maptype='SATELLITE', markers=[(GPS[0], GPS[1])])}}
</div>
{% else %}
<p class='alert'>{{ error1 }}</p>
{% endif %}