【问题标题】:How to open a template in Django platform如何在 Django 平台中打开模板
【发布时间】:2011-11-25 07:49:31
【问题描述】:

我想打开一个 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),
 )

【问题讨论】:

  • 不能把目录加到settings.py中的TEMPLATE_DIRS吗?那么就不需要手动打开模板了。
  • 我不想那样做。请告诉我如何手动操作
  • 那我要问了,什么不工作?你有错误吗?模板是否未正确呈现?会发生什么?
  • 我是 Django 的新手。请给我一个代码来做这件事,或者这个代码有什么问题吗?
  • 请说明您认为需要手动打开它的原因。

标签: python django


【解决方案1】:

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

假设 Django 项目位于目录/home/foo/myproject 中。如果您cd 到该目录并运行python manager.py runserver,则应用程序内的当前目录(即目录.)将是/home/foo/myproject,这不是您想要的。

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

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

【讨论】:

  • 感谢您的回复。我这样做了。现在它显示此错误: Caught VariableDoesNotExist while rendering: Failed lookup for key [null] in u"[set(['final'])]"
  • 你能帮帮我吗...请给我一个示例代码,只是为了嵌入一个 html 文件,或者当我打开 localhost/index 时它会打开那个 html 文件
  • @komal 您的最后一个错误可能是模板有问题。我帮不了你,因为我没有 Django 在工作,也无法测试任何东西。我真的强烈建议您将模板放在 Django 的标准位置,这样您就不必手动打开它们。
猜你喜欢
  • 1970-01-01
  • 2015-10-17
  • 2022-01-13
  • 1970-01-01
  • 2020-03-03
  • 2019-10-17
  • 1970-01-01
  • 2017-08-30
  • 1970-01-01
相关资源
最近更新 更多