2016-03-21 2 views
3

Так что я использую этот классный плагин под названием Folium, который создает карты. Карта создается как .html, и каждый раз, когда вы обновляете карту, она восстанавливает html. Поэтому, чтобы отображать карту и навигационную панель и другие материалы на одной странице, я думаю, мне нужно будет поместить map.html внутри клетки iframe, где она может обновиться по своему усмотрению.Использование Flask для встраивания локальной HTML-страницы

карта будет создаваться таким образом:

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

ответ

6

У вас неверный маршрут. Как вы его написали, вы определили маршрут для 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') 

Настой автоматически предварять адрес вашего сервера (http://127.0.0.1:4995) в начале любого пути, который вы определили.

Кроме того, в шаблоне для вашего HTML я бы использовал url_for, чтобы получить URL-адрес карты, чтобы избежать изменений в маршрутах, требующих изменений в ваших шаблонах.

<iframe src="{{ url_for('show_map') }}"></iframe> 
+0

эй, спасибо за информацию. однако я все еще не могу заставить его работать. У меня есть первая конечная точка '@ app.route ('/')', которая заканчивается 'return render_template ('index.html')', затем другая конечная точка '@ app.route ('/ data/map.html')' с 'return send_file ('data/plot.html')'. Однако, если я загружаю страницу, я получаю '127.0.0.1 - - [28/Feb/2018 15:03:48]« GET/HTTP/1.1 »200 - 127.0.0.1 - - [28/Feb/2018 15:03 : 48] "GET /data/plot.html HTTP/1.1" 404 -' – lorenzori

+0

ах он работал с добавлением 'static_folder = 'data'' в' Flask (...) 'initialization! – lorenzori