Django--DTL模板介绍

DTL与普通的HTML文件的区别:
DTL模板是一种带有特殊语法的HTML文件,这个HTML文件可以被Django编译,可以传递参数进去,实现数据动态化。在编译完成后,生成一个普通的HTML文件,然后发送给客户端。
渲染模板:
Render_to_string:找到模板,然后将模板编译后渲染成python的字符串格式。最后再通过HttpResponse类包装成一个HttpResponse对象返回回去。
示例代码:
在这里插入图片描述
Render:直接将模板渲染成字符串和包装成HttpResponse对象一步到位完成。示例代码:
在这里插入图片描述

模板查找路径配置:
在项目的setting.py文件中。有一个TEMPLATES配置,这个配置包含了模板引擎的配置,模板查找路径的配置,模板上下的配置等。
1、DIRS:这是一个列表,在这个列表中可以存放所有的模板路径,以后在视图中使用render或render_to_string渲染模板的时候,会在这个列表的路径下查找模板。
2、APP_DIRS:默认为True,这个设置为True后,会在INSTALLED_APPS的安装了的APP下的templates文件夹中查找模板。
3、查找顺序:先会在DIRS这个列表中依次查询路径下有没有这个模板,如果有,就返回。如果DIRS列表中所有的路径都没有找到,那么会先检查当前这个视图所处的app是否已经安装,如果已经安装了,那么就先在当前这个app下的templates文件夹中查找模板,如果没有找到,那么会在其他已经安装了的app中查找。如果没有路径下都没有找到,那么会抛出一个TemplateDoesNotExist的异常。
在这里插入图片描述

DTL模板语法
变量:
模板中可以包含变量,Django在渲染模板的时候,可以传递变量对应的值去替换。变量的命名规范和python非常类似,只能是阿拉伯数字和英文字符以及下划线的组合,不能出现标点符号等特殊。变量需要通过视图函数渲染,视图函数在使用render或render_to_string的时候可以传递一个context的参数,这个参数是一个字典类型。以后在模板中的变量就从这个字典中读取值的。
Views.py中定义变量
在这里插入图片描述
Index.html使用
在这里插入图片描述
变量说明:
1、在模板中使用变量,需要将变量放到’{{变量}}’中。
2、如果想要访问对象的属性,那么可以通过’对象.属性名’来进行访问。
3、如果想要访问一个字典的key对应的value,那么只能通过’字典.key’的方式进行访问,不能通过’中括号[]’的形式进行访问。
4、因为在访问字典的’key’时候也是使用’点.’来访问,因此不能在字典中定义字典本身就有的属性名当作’key’,否则字典的那个属性将编程字典中的key了。
5、如果想要访问列表或元组,那么也是通过’点.’的方式进行访问,不能通过’中括号[]’的形式进行访问。这一点和python是不一样的。

发布了37 篇原创文章 · 获赞 0 · 访问量 1557

猜你喜欢

转载自blog.csdn.net/u013465115/article/details/104520447