如何在Django平台中打开模板
我想打开一个 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')