很新的Django(和一般的web开发),所以道歉提前。
我想显示在一个Django的网页我大青叶地图,但我似乎无法找出原因我最终得到一个空白屏幕。我看着在SO其他职位,但他们都要求无论是弹出窗口专门或Jupyter显示。
views.朋友
from django.shortcuts import render, redirect, render_to_response
from django.http import HttpResponse
from django.template.loader import get_template
from django.template.context import RequestContext
import pandas as pd
import folium
def folium_map(request):
coords = [(40.7831, -73.9712), (40.6782, -73.9412), (40.7282, -73.7949)]
map = folium.Map(location=[40.7118, -74.0131], zoom_start=12)
for coord in coords:
folium.Marker(location=[coord[0], coord[1]]).add_to(map)
context = {'map': map}
return render(request, 'template.html', context)
然后,在我的template.html文件,我只是尝试插入div标签中的地图:
<div> {{ map|safe }} </div>
而且它是空白。我需要的iframe?有没有我应该运行一个脚本来源,允许单张地图?我如何设置它,因为我需要一个源?我会保存到本地映射为一个HTML文件,因为我试图让这个部署,以便其他人可以使用它,如果它是在其中产生每一次地图的情况下,它必须被保存在本地,我不敢肯定,如果人们会理解为他们的记忆或文件杂乱,因为该工具会使用非常频繁。
我缺少的东西来显示地图?我打开其他映射库,但是大青叶是目前最简单,最互动的我已经遇到。
在你的代码map
是folium.Map
对象,尚未与HTML / JavaScript的字符串。首先,您需要渲染。通常情况下,这将创建一个单一,完整的HTML页面。对于Jupyter笔记本电脑这个HTML页面被放入一个iframe。因此,有两种选择:
如果你不想要或需要把地图中的模板,你可以直接渲染页面:m.get_root().render()
返回与完整的HTML / JS页面的字符串。
如果你想嵌入的地图为模板,你可以使用iframe:m._repr_html_()
返回一个字符串与HTML / JS网页的iframe。