You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 21:35:14