一, 模板 - Templates
模板,就是指在项目的’templat’目录下的各种html网页文件.
1.变量
能够作为变量的数据类型:
字符串,整数,小数,列表,元组,字典,对象
2.过滤器
1.什么是过滤器?
过滤器是允许在变量输出之前按一定的规则改变变量的值。
2.语法:
{{变量|过滤器}}
Jinja2模板中常见的过滤器:
过滤器名称 说明
capitalize 首字符变大写
upper 将值转换为大写字符
lower 将值转换为小写字符
title 将每个单词的首字母转成大写
trim 去掉值两端的空格
3.标签
什么是标签?
每个标签表示的是不同的服务器端的功能.
if 标签
1.基本 if结构
{% if 条件 %}
{% endif %}
if else 结构标签
{% if 条件 %}
满足条件要执行的内容
{% else %}
不满足条件时执行的内容
{% endif %}
练习:
判断年龄:如果>30,网页输出 中年人;<=30,青年人。
if elif 结构标签
{% if 条件1 %}
满足条件1执行的内容
{% elif 条件2 %}
不满足条件1,但满足条件2执行的内容
{% elif 条件3 %}
不满足条件1和2,但满足条件3执行的内容
{% else %}
以上都不满足时执行的内容
{% endif %}
for 结构标签
语法:
{% for 变量 in 列表|元组|字典 %}
{% endfor %}
内置变量: loop
1. 只能在for循环标签中使用
2. 不用声明,可以直接使用
作用:记录本次循环的一些信息。
loop 中的常用属性:
1. loop.index
作用: 记录当前循环的次数,从1开始计算。
2. loop.index0
作用: 同上,从0开始计算。
3.loop.first
作用: 表示判断当前的循环是否为第一次循环。
返回值: True: 表示是第一次循环; False:表示不是第一次循环。
4.loop.last
作用: 表示当前循环是否为最后一次循环。
返回值:True: 表示是第一次循环; False:表示不是第一次循环。
macro 标签(宏)
1.macro(宏)的作用:
相当于是模板中声明函数。
2.语法:
{% macro %} ... {% endmacro %}
声明宏:
{% macro 名称(参数列表) %}
... ...
{% endmacro %}
使用宏:
{{宏名称(参数列表)}}
3.在独立的模板文件中声明所有的宏:
- 创建 macro.html 模板文件
作用:定义项目中要用到的所有的宏。 - 在使用宏的模板上,导入 macro.html
{% import ‘macro.html’ as macros %}
4.静态文件的处理
1.什么是静态文件?
在Flask中不能与服务器动态交互的文件都是静态文件.
2.在Flask中处理静态文件:
- 所有的静态文件要放在static目录中
static 目录要位于项目的 根目录处, - 所有的静态文件必须通过/static/ 路径访问
/static 表示的要到静态资源目录中继续搜索.