所以我使用这个名为Folium的酷插件来创建地图。地图被创建为.html,每次更新地图时都会重新生成html。因此,为了在同一页面上显示地图和我的导航栏以及其他内容,我想我需要将map.html放在iframe笼子里,它可以随意刷新。
因此创建了地图:
map1 = folium.Map(location=[45.5, -73.61], width="100%", height="100%")
map1.save('./maps/map.html')
我已经尝试过iframeing:
<iframe src="/maps/map.html"></iframe>
但我得到404 error
昨天有人建议我为它构建一个端点:
@app.route('/http://127.0.0.1:4995/maps/map')
def show_map():
return flask.send_file('/maps/map.html')
但我一直收到404错误
答案 0 :(得分:8)
您的路线定义不正确。正如你所写的那样,你定义了http://yourserver/http://127.0.0.1:4995/maps/map
的路线而不是我认为你想要的是http://yourserver/maps/map.html
。为此,您需要使用以下
@app.route('/maps/map.html')
def show_map():
return flask.send_file('/maps/map.html')
Flask会自动将服务器的地址(http://127.0.0.1:4995
)添加到您定义的任何路径的开头。
此外,在HTML模板中,我会使用url_for
获取地图的网址,以避免路线发生变化,从而需要更改模板。
<iframe src="{{ url_for('show_map') }}"></iframe>