为了账号安全,请及时绑定邮箱和手机立即绑定

为什么templates下已经添加了已项目名命名的目录,如果用了DTL,Django还是分不清返回哪个应用的页面?

在Templates中添加了以项目名命名的目录,把html文件放在这个目录里,两个应用返回的render()都不带第三个参数,Django就可以区分开两个应用的index.html了,但在blog的render()中添加了第三个参数,在页面中调用 {{hello}},再访问blog2的时候就还是返回blog的页面,这是什么情况?

正在回答

4 回答

这种情况确实没有遇到过,既然你确定字典不一样,那我估计应该是其他一些细节处理上出现了问题,譬如:

  • Templates目录下要添加以[应用名]命名的目录,你的问题里写的是[项目名],应该是你笔误了。检查一下两个目录名,一个是blog,一个是blog2,有没有写错。

  • render()的第二个参数,'app_name/page_name.html',这个不要写错。在上一步,就是添加目录之前,这个参数一直都是'index.html',然后如果你用的是Pycharm,这货会自动给你把路径补全,看上去是好事,但它会弄错,会把你两个render()里的参数都补全成'blog/index.html'(取决于你先添加了哪个目录),你也检查一下。

  • 然后就是两个index.html,因为名字都一样,容易搞混,稍不留神可能就改错地方了。

0 回复 有任何疑惑可以回复我~
#1

qq_冲出亚马逊_03922896 提问者

老师提到的几点我都反复检查过的,确定没问题,奇怪的是如果直接在页面里写<h1>hello blog</h1>和<h1>hello blog2</h1>访问的时候就没什么问题,但使用DTL传值就总是返回blog的页面,我也反复确认过两个views.py中第三个参数是不是写错了,但确实是一个'hello blog'一个'hello blog2',还删了写写了删重复了好几次。也可能是哪里我还不清楚的细节搞错了,或许以后学到哪个知识点就可以豁然开朗了。谢谢老师这么耐心的解答!!!这门课程已经听完了,讲的非常棒,很易懂,我刚学python一个月,基础比较薄弱,感觉这门课很适合Django入门
2017-01-17 回复 有任何疑惑可以回复我~
#2

杜秉轩 回复 qq_冲出亚马逊_03922896 提问者

前几年我第一次学Django的时候跟你情况差不多,也才学了Python没多久,那会儿还是看Django官方文档学的……很理解你的感受。
2017-01-18 回复 有任何疑惑可以回复我~

楼主,我和你问题一样,为什么以上条件都是按照老师来的,也能显示出页面,但是blog/index.htmt和blog2/index.html显示的都是hello,blog,我用的是pycharm,但是并不像老师说的那样,软件没有自动帮我补齐,我是手打的,这个问题很麻烦

0 回复 有任何疑惑可以回复我~

是不是两个页面的hello定义的字典一样?

0 回复 有任何疑惑可以回复我~
#1

qq_冲出亚马逊_03922896 提问者

不一样,我检查过的
2017-01-16 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
django入门与实践
  • 参与学习       65155    人
  • 解答问题       869    个

手把手带你进入Django开发的大门,充分领略Django的魅力

进入课程

为什么templates下已经添加了已项目名命名的目录,如果用了DTL,Django还是分不清返回哪个应用的页面?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信