Django day07-模板

模板

1.模板的功能
产生html,控制页面上展示的内容。模板文件不仅仅是一个html文件,还包含两部分内容:
a)静态内容:css、js、html
b)动态内容:用于动态去产生一些网页内容。通过 模板语言 来产生。

2.模板文件的使用
通常是在视图函数中使用模板产生html内容返回给客户端:
a)加载模板文件,loader.get_template
b)定义模板上下文 RequestContext
c)模板渲染产生html页面内容 render
以上三步可以使用render()函数代替

3.模板文件加载的顺序
1)首先去配置的模板目录下找模板文件
2)去INSTALLED_APPS 下面的每一个应用去找模板文件,前提是应用中必须有templates文件夹

4. 模板语言
模板语言简称DTL,即Django Template Language。

5. 模板变量
模板变量名是由数字、字母、下划线和点组成,不能以下划线开头。使用模板变量:{{ 模板变量名 }}

模板变量的解析顺序:
例一:{ book.btitle }}:
1)首先把book当成一个 字典,把btitle当成键明,进行取值book[‘btitle’];
2)把book当成一个 对象,把btitle当成属性,进行取值book.btitle;
3)把book当成一个对象,把btitle当成对象的方法,进行取值book.btitle。

例二:{{ book.0 }}
1)首先把book当成一个字典,把0当成键明,进行取值book[‘0’];
如果解析失败,会用 用字符串 填充模板变量。

6. 模板标签
{% 代码段 %}

for循环:
{% for x in 列表 %}
#列表不为空时执行
{% empty %}
#列表为空时执行
{% endfor%}
可以通过{{ forloop.counter }}得到for循环遍历到了第几次

{% if 条件 %}
{% elif 条件 %}
{% else %}
{% endif %}
关系比较操作符: >、<、>=、<=、==、!=。
逻辑运算:not、and、or。
注意:进行比较操作时,比较操作符两边必须有空格!

7. 过滤器
过滤器用于对模板变量进行操作。
date:改变日期的显示格式
length:求长度。字符串、列表、元组、字典长度
default:设置模板变量的默认值

格式:模板变量 | 过滤器:参数

自定义过滤器
在应用下面创建文件夹templatetags,Django会在templatetags下默认创建_init_.py文件。接下来就可以在templatetags下创建py文件,自定义过滤器了。

1.新建过滤器filters文件(过滤器本质是python的函数)
新建filter文件
要自定义过滤器必须要创建一个Library类对象,然后调用这个实例对象的fitler方法,让其作为装饰器方法py函数上方。

2.使用自定义函数
在html文件中加载filters文件

{% load filters %}

使用自定义过滤器

详情参考官方文档。
注意:自定义过滤器函数,最少有一个参数,最多两个参数。

8. 模板注释
单行注释:{# 注释内容 #}
多行注释:
{% comment %}
注释内容
{% endcomment %}
注意:模板注释后,在网页点击源代码是看不到被模板注释的代码。而html注释能看到。

9. 模板继承
目的:模板继承也是为了重复使用html页面,节省空间。
10. 继承语法

{% extends '继承文件的路径' %}

继承模板文件

11. 预留块
目的:可以重新父模板中的模板内容。
预留块语法

{% block 块名 %}
内容可写可不写
{% endblock 块名%}

父模板:
父模板中的内容
子模板:
子模板中的内容
浏览器:
浏览器中的内容
属性:{{ block.super }}表示继承父模板的默认内容。

注意:把所有页面相同的内容放到父模板文件中,不需要放在块中,有些位置页面内容不同,需要在父模中预留块。

12. HTML转义
模板上下文中 的html标记默认是会被转义的。
小于号 > 转为&lt;
大于号 < 转为&gt;
单引号 ’ 转为&#39;
双引号 " 转为&quto;
与符号 & 转为&amp;

要关闭模板上下文字符串的转义:可以使用{{ 模板变量 | safe }}
也可以使用:
{% autoescape off %}
模板语言代码
{% endautoescape %}

模板硬编码:{{ 模板变量|default:<h1>hello</h1> }}中的字符串(即<h1>hello</h1>)默认不会转义,如果需要转义,需要手动转义。

13. csrf伪造,即跨站请求伪造

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值