Python 烧瓶变量未显示在HTML中

Python 烧瓶变量未显示在HTML中,python,html,flask,geojson,flask-wtforms,Python,Html,Flask,Geojson,Flask Wtforms,我有一个小烧瓶应用程序,我正在使用它: 制作带有传单地图的HTML页面 从HTML页面获取用户输入 使用某些python模块对该输入运行计算 将这些变量返回到页面中的JS函数以填充映射 除了lat和lng之外,我无法得到任何东西来返回到我的HTML{}flask变量中 这是我的HTML页面: 页面标题 #mapid{高度:300px;} 到PY的纬度: 到PY的经度: 获取数据 {%if-lat1!=None和lng1!=None%} {{lat1}},{{lng1} var lat

我有一个小烧瓶应用程序,我正在使用它:

  • 制作带有传单地图的HTML页面
  • 从HTML页面获取用户输入
  • 使用某些python模块对该输入运行计算
  • 将这些变量返回到页面中的JS函数以填充映射
除了latlng之外,我无法得到任何东西来返回到我的HTML{}flask变量中

这是我的HTML页面:


页面标题
#mapid{高度:300px;}
到PY的纬度:

到PY的经度:
获取数据 {%if-lat1!=None和lng1!=None%} {{lat1}},{{lng1} var lat1={{lat1} 变量lng1={{lng1} {%endif%} {%if点!=None%} {{点}}

{%endif%} {%if GeJ!=None%} {{GeJ}} var GeJ={{GeJ} {%endif%} var mymap=L.map('mapid').setView([51.505,-0.09],13); L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}'{ 属性:“地图数据©;贡献者,图像©”, maxZoom:18, id:“映射框。高对比度”, accessToken:'pk.Eyj1ijoiy2dyb3roiwiysi6imnqz2w4bwy5dtfueg0zm2w0dtnkazi1awifq.55SWFVBYzs08EqJHAa3AsQ' }).addTo(mymap); 函数zoomTo(){ mymap.panTo(新L.LatLng(lat1,lng1)); } 函数addGJ(){ var myLayer=L.geoJson(GeJ).addTo(mymap); } window.onload=zoomTo(); window.onload=addGJ();
您可以尝试使用内置的
none

然后做一些类似的事情:

{% if lat1 is not none and lng1 is not none %}

您可以尝试使用内置的
none

然后做一些类似的事情:

{% if lat1 is not none and lng1 is not none %}

页面标题
#mapid{高度:300px;}
到PY的纬度:

到PY的经度:
获取数据 {%如果lat1不为空且lng1不为空%} {{lat1}},{{lng1} var lat1={{lat1} 变量lng1={{lng1} {%endif%} {%if点!=None%} {{点}}

{%endif%} {%if GeJ!=None%} {{GeJ}} var GeJ={{GeJ} {%endif%} var mymap=L.map('mapid').setView([51.505,-0.09],13); L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}'{ 属性:“地图数据©;贡献者,图像©”, maxZoom:18, id:“映射框。高对比度”, accessToken:'pk.Eyj1ijoiy2dyb3roiwiysi6imnqz2w4bwy5dtfueg0zm2w0dtnkazi1awifq.55SWFVBYzs08EqJHAa3AsQ' }).addTo(mymap); 函数zoomTo(){ mymap.panTo(新L.LatLng(lat1,lng1)); } 函数addGJ(){ var myLayer=L.geoJson(GeJ).addTo(mymap); } window.onload=zoomTo(); window.onload=addGJ();

页面标题
#mapid{高度:300px;}
到PY的纬度:

到PY的经度:
获取数据 {%如果lat1不为空且lng1不为空%} {{lat1}},{{lng1} var lat1={{lat1} 变量lng1={{lng1} {%endif%} {%if点!=None%} {{点}}

{%endif%} {%if GeJ!=None%} {{GeJ}} var GeJ={{GeJ} {%endif%} var mymap=L.map('mapid').setView([51.505,-0.09],13); L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token={accessToken}'{ 属性:“地图数据©;贡献者,图像©”, maxZoom:18, id:“映射框。高对比度”, accessToken:'pk.Eyj1ijoiy2dyb3roiwiysi6imnqz2w4bwy5dtfueg0zm2w0dtnkazi1awifq.55SWFVBYzs08EqJHAa3AsQ' }).addTo(mymap); 函数zoomTo(){ mymap.panTo(新L.LatLng(lat1,lng1)); } 函数addGJ(){ var myLayer=L.geoJson(GeJ).addTo(mymap); } window.onload=zoomTo(); window.onload=addGJ();
如果您提供一个示例,说明传递所有值时会发生什么情况,这会有所帮助

否则,据我所知,可能导致问题的原因是python中的“Null”对象是单例None。检查事物是否“无”的最佳方法是使用is not None或更好,如:

{%if-lat%}{{lat}{%endif%}

另外,您不能将GeJ分配给div中的var GeJ,而不是以一种突然的方式在上面放置一行JS吗


顺便说一句,我想加上这个作为评论,但没有足够的声誉。抱歉。

如果您提供一个示例,说明传递所有值时会发生什么情况,这会有所帮助

否则,据我所知,可能导致问题的原因是python中的“Null”对象是单例None。检查事物是否“无”的最佳方法是使用is not None或更好,如:

{%if-lat%}{{lat}{%endif%}

另外,您不能将GeJ分配给div中的var GeJ,而不是以一种突然的方式在上面放置一行JS吗


顺便说一句,我想加上这个作为评论,但没有足够的声誉。抱歉。

我不太清楚你在问什么。您只将lat1、lng1和GeJ传递给模板,而没有传递点。我也尝试过传递它,但没有结果。我将更新代码以反映这一点。不管怎样,GeJ也不会显示。您是否尝试过在脚本标记之外呈现{{GeJ}},HTML显示了什么?您的函数是生成JSON响应还是实际的JSON字符串格式?同意@Daniel Roseman的说法-您的代码没有显示您描述的问题:您将多个变量传递到
render\u template()
,之后出现了什么问题?也许代码中的注释会有所帮助。我不确定你在问什么。您只将lat1、lng1和GeJ传递给模板,而没有传递点。我也尝试过传递它,但没有结果。我将更新代码以反映这一点。不管怎样,GeJ也不会显示。您是否尝试过在脚本标记之外呈现{{GeJ}},HTML显示了什么?您的函数是生成JSON响应还是实际的JSON字符串