一、模板层的变量
1、能传递到模板层的数据类型:str(字符串)、list(数组)、dict(字典)、obj(类实例化的对象)、fun(函数)等。
2、在模板中使用变量的方法:
(1)字符串:{{ 变量名 }}
(2)数组:{{ 变量名.index }}
(3)字典:{{ 变量名.key }}
(4)对象:{{ 对象.方法 }}
(5)函数:{{ 函数名 }}
二、模板层的标签
1、标签的作用:将一些服务器端的功能嵌入到模板中,例如流程控制(IF、FOR等)等。语法如下:

2、if标签

if标签的注意事项:(1)if条件表达式里可以用的运算符==,!=,<>,<=,>=,in,not in,is,is not,not,and,or;(2)在if标记中使用括号是无效的语法。如果需要指示优先级,则应使用嵌套的if标记。
3、if标签测试
(1)视图文件view文件中新建视图函数。

(2)添加html文件

(3)添加路由

(4)测试

4、if标签练习
(1)任务:完成下图所以的计算器,要求:每点击完“开始计算”之后,页面保留用户提交的值和选择的操作(加减乘除)

分析:这个属于典型的既有get请求又有post请求。当get请求进来是,将展示计算器页面;提交数据进行后端计算,则属于post请求。
(2)view函数中的代码
在view中建立如下视图函数。当用户进入此路由时,即为get请求,get请求就将对应的html静态页面返回。当用户填写完计算值,并点击提交之后,获取模板中上送的值,并进行计算,再将计算结果返回给模板。(小技巧:使用locals可以自动将当前函数中的变量拼接成字典)

(3)html代码

(4)配置路由

(5)测试效果

4、for标签
(1)语法如下:

for标签的内置变量

(2)for循环测试
新建view函数

配置html

配置路由并测试结果

三、总结
1、可以将不同数据类型的变量从view层传递到模板层
2、在模板层调用变量的方法为{%标签%}{%结束标签%}
3、模板层支持if和for循环。
posted on
浙公网安备 33010602011771号