2017-06-04 76 views
1

我試圖運行一個googlemaps API地圖,只有當有GPS值可用。Flask Jinja tempate loop:錯誤沒有顯示

此檢查是否有GPS,如果沒有的話ERROR1:

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 
+0

如果沒有GPS,您可以在模板中打印{{error1}}嗎? –

+0

這是我的問題 - 如果沒有GPS,那麼它應該打印{{error1}}('沒有GPS數據'),但它仍然試圖運行googlemap ... – wazzahenry

+0

它是打印{{error1 }}出於你的條件,只要檢查它的內容。 –

回答

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 %}