如何使用Python与Django API在浏览器中显示地图?已遇显示难题
问题描述
我在Web浏览器中显示地图时遇到困难。我正在使用Django API,尝试以HTML表格形式显示用Python编写代码生成的地图。
views.py 代码
def default_map(request): world= folium.Map( location=[33.5969, 73.0528], zoom_start=2) context={'Map':world} return render(request,'home.html',context)
urls.py 代码
urlpatterns = [ path('', views.home, name='home'), path('about', views.about, name='about'), path('contact', views.contact, name='contact'), path('', views.home, name="default"), path('admin/', admin.site.urls), ]
home.html 代码
<td colspan="=5", rowspan="15"> {{Map}} </td>
解决方案
1. 修复Folium地图渲染逻辑
Folium对象直接传入模板无法正常解析,需要先转为HTML字符串并标记为安全内容:
修改views.py:
from django.utils.safestring import mark_safe import folium def default_map(request): world= folium.Map( location=[33.5969, 73.0528], zoom_start=2 ) # 将地图转换为HTML字符串,避免Django自动转义 map_html = world._repr_html_() context={'Map': mark_safe(map_html)} return render(request,'home.html',context)
2. 修正URL路由问题
urls.py存在重复空路径路由,且未配置default_map的访问路径,调整如下:
urlpatterns = [ path('', views.home, name='home'), path('map/', views.default_map, name='default_map'), # 添加地图页面路由 path('about/', views.about, name='about'), # 规范URL路径,末尾加/ path('contact/', views.contact, name='contact'), # 同上 path('admin/', admin.site.urls), ]
3. 修正HTML表格属性错误
home.html中colspan="=5"多了多余的等号,修改为正确格式:
<td colspan="5" rowspan="15"> {{ Map }} </td>
4. 访问验证
启动Django服务后,访问http://localhost:8000/map/即可查看渲染完成的地图。
内容的提问来源于stack exchange,提问作者Sana Naz
相关产品推荐
相关产品推荐

