关于Templates
其实就是一个个的HTML文件,Templates用了简单的Django模板语言——DTL
可以使用第三方模板 如Jinja2。。额这个好像还不知道 去百度一下
jinja2是Flask作者开发的一个模板系统,起初是仿django模板的一个模板引擎,为Flask提供模板支持,由于其灵活,快速和安全等优点被广泛使用。
如果需要修改Templates模板,则修改settings.py中的TEMPLATES中BACKEND里面的值,改成自己所想要的模板引擎。
接下来就开始开发第一个Templates
1、在APP的根目录下创建名为templates字典文件夹。
2.、在该目录下创建HTML文件,在html文件中加入标签hello,blog!
3、在views.py中返回render()
from django.shortcuts import render def index(request): return render(request,'index.html')
DTL初步使用:
render()函数中支持一个dict类型参数
该字典是后台传递到模板的参数,键为参数名,在模板中使用 {{ 参数名 }} 来直接使用
index.html中标签改为: <h1>{{ hello }}</h1>
views.py中代码改为: from django.shortcuts import render def index(request): return render(request,'index.html',{'hello':'Hello,Blog!'})
下面是Templates很重要的注意事项:
重新添加一个新应用来区分两个情况。新加一个APP应用
顺便当复习前面的内容了
命令行输入 python manage.py startapp blog2
创建第二个APP应用。并且在settings.py中添加APP 。将blog中templates文件夹直接复制到blog2中,index页面改为Hello,blog2区分。根urls里加入一个blog2的url配置。
runserver后。我们会发现,我们进入blog 或者 blog2的url时 均为出现Hello,blog!
问题:!
Django查找Template时, Django会按照INSTALLED_APPS中的添加顺序查找Templates。即Django会先找到blog中的templates,该问题即为 命名冲突。
解决方案:
在APP的Templates目录下创建以APP名为名称的目录,将html文件放入该目录下。即blog-templates-blog / blog2-templates-blog2。此时也要修改下views.py中index的目录。这样就可以解决冲突
断断续续的终于写完了templates的笔记。回顾一天,积累了一些post get数据分析的例子,有些时候真的需要善于发现一些问题,发现一些重要的数据,还有JS也要好好搞一下了。今天也有一些收获吧。学习了一下Django中的一个模块。加油!