如何在Django平台中打开模板

-2 投票
1 回答
1385 浏览
提问于 2025-04-17 07:02

我想打开一个 HTML 文件,也就是 map.html,这个文件和我保存 views.py 和 urls.py 的目录是一样的。(这是一个基于 Django 的平台)

我为 views.py 写了这段示例代码(用来加载 map.html),但是它没有工作:

 from django.template import Template, Context,RequestContext 
 from django.http import HttpResponse
 import datetime

 def router_map(request):
     fp = open('./map.html')
     t = Template(fp.read())
     fp.close()
     html = t.render(Context({'router_map'}))
     return HttpResponse(html)

而我的 urls.py 是:

 from django.conf.urls.defaults import * 
 from umit.views import router_map

 urlpatterns = patterns('',
     (r'^index/$', router_map),
 )

1 个回答

1

问题在于,你使用了路径 './map.html'。这意味着 Python 会尝试查找程序的当前目录,而不是视图文件所在的目录。

假设你的 Django 项目在目录 /home/foo/myproject 下。如果你进入这个目录并运行 python manager.py runserver,那么应用程序内部的当前目录(也就是 .)会是 /home/foo/myproject,这并不是你想要的。

解决这个问题最简单的方法是,在调用 open 时使用文件的完整路径:

fp = open('/home/foo/myproject/myapp/views/map.html')

撰写回答