#django
1.模板层介绍:
实际的页面大多是带有样式的HTML代码,这可以让浏览器渲染出非常漂亮的页面。目前市面上有非常多的模板系统,其中最知名最好用的就是DTL和Jinja2。 DTL 是 Django Template Language 三个单词的缩写,也就是Django自带的模板语言。当然也可以配置Django支持Jinja2等其他模板引擎,但是作为Django内置的模板语言,和Django可以达到无缝衔接而不会产生一些不兼容的情况。
2.渲染模板的方法(render):
#导入render
from django.shortcuts import render
#定义一个视图函数
def index(request):
#在视图函数中渲染一个名字叫index.html的模板
return render(request,"index.html")
render方法用于将模板渲染到浏览器中
3.将变量传入模板中:
在render方法中有一个参数context,可以将视图函数中的参数传递到模板中
def index(request):
context = "Hello flying!"
#在视图函数中渲染一个名字叫index.html的模板
return render(request,"index.html",context = context)
之后可以在模板中引用这个参数context
4.模板路径查找:
在项目的setting.py文件下有一个TEMPLATES的配置,这个配置包含的模板引擎的配置等。
1) DIRS :这是一个列表,在这个列表中可以存放所有的模板路径,以后在视图中使用 render 或者 render_to_string 渲染模板的时候,会在这个列表的路径中查找模板。
2) APP_DIRS :默认为 True ,这个设置为 True 后,会在 INSTALLED_APPS 的安装了的 APP 下 的 templates 文件加中查找模板。
3)查找顺序:比如代码 render(‘list.html’) 。先会在 DIRS 这个列表中依次查找路径下有没有这个模板,如果有,就返回。如果 DIRS 列表中所有的路径都没有找到,那么会先检查当前这个视图所处的 app 是否已经安装,如果已经安装了,那么就先在当前这个 app 下 的 templates 文件夹中查找模板,如果没有找到,那么会在其他已经安装了的app 中查找。如果所有路径下都没有找到,那么会抛出一TemplateDoesNotExist 的异常。