6

所以我使用了这个很酷的插件,叫做 Folium,它可以创建地图。地图以 .html 格式创建,每次更新地图时都会重新生成 html。因此,为了在同一页面上显示地图和我的导航栏和其他内容,我想我需要将 map.html 放在一个 iframe 笼子中,它可以随意刷新自己。

地图是这样创建的:

map1 = folium.Map(location=[45.5, -73.61], width="100%", height="100%")
map1.save('./maps/map.html')

我已经尝试过 iframe :

<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 错误

4

1 回答 1

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获取地图的 URL 以避免更改您的路线需要更改您的模板。

<iframe src="{{ url_for('show_map') }}"></iframe>
于 2016-03-21T17:22:48.810 回答