【发布时间】:2013-09-11 11:09:49
【问题描述】:
我正在尝试开始一个简单的项目来显示一些 HTML。但是,当我运行我的代码时,我似乎无法找到 html 文件。我正在关注 Django 网站上的教程所说的内容
"在您刚刚创建的模板目录中,创建另一个名为 polls 的目录,并在其中创建一个名为 index.html 的文件。换句话说,您的模板应该位于 polls/templates/polls/index.html。因为关于 app_directories 模板加载器的工作原理,您可以在 Django 中将这个模板简单地称为 polls/index.html。”
所以我将 index.html 放入
homepage/templates/homepage/index.html
我还没有在我的 models.py 中添加任何东西
项目 urls.py:
from django.conf.urls import include, url, patterns
urlpatterns = patterns('',
url(r'homepage/',include('homepage.urls', namespace = "homepage")),
)
应用 urls.py
from django.conf.urls import patterns, url
from homepage import views
urlpatterns = patterns('',
url(r'^$', views.index, name = 'index'),
)
views.py:
from django.http import HttpResponse
from django.template import RequestContext, loader
def index(request):
template = loader.get_template('homepage/index.html')
return HttpResponse(template)
)
******更新** **********
所以通过一些修补,我似乎能够获取 HTML 文件。但是,此 HTML 文件的显示行为不正确。例如,如果我有这个位:
<!DOCTYPE html>
<html>
<body>
<form>
First name: <input type="text" name="firstname"><br>
Last name: <input type="text" name="lastname">
</form>
</body>
</html>
输出将是一个空白页。页面源将显示:
<Text Node: '<!DOCTYPE html>
<html>
<b'>
不知道为什么会这样。是否与我安装了 django-pipeline 以及 twitter 引导程序有关?
【问题讨论】:
-
您的
TEMPLATE_LOADERS设置是什么? -
@kroolik omg .. 完全忘记了编辑这些内容...对不起,我已经很久了。发布解决方案!我很乐意接受它作为答案!
-
@kroolik 实际上我的 TEMPLATE_LOADERS 设置为默认 TEMPLATE_LOADERS = ( 'django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader', # 'django.template. loaders.eggs.Loader',我的页面现在运行但是它没有打印正确的输出=[
-
不要返回
HttpResponse,内容是模板对象(带有它的节点),尝试render或django.http.shortcuts 中的render_to_response。模板的字符串表示不是呈现的内容(这是通过.render()方法完成的)。 -
@kroolik 谢谢!这行得通!我做了什么 --> pastebin.com/UKWxw2Bd 但是,我不明白您所说的“模板的字符串表示不是渲染的内容(这是通过 .render() 方法完成的)”是什么意思,如果您不介意,您能解释一下吗通俗地说,这对我来说。谢谢!
标签: python html django django-templates django-views