jinja2 渲染的语法
语法
描述
{{ }}
变量,后端定义的数据,直接使用或者使用他的方法
{% %}
具有指定的语法含义,会使用到变量,但是可以实现小的功能,比如:判读,循环
变量代码样例:
Titlehello world 这是个{{ name.upper() }},他{{ age }}岁
hello world 这是个{{ name.replace("i","I") }},他{{ age }}岁
hello world 这是个{{ name.upper() }},他{{ age }}岁,他喜欢 {{ like.0 }},{{ like.1 }}
hello world 这是个{{ name.upper() }},他{{ age }}岁,他喜欢 {{ like.0 }},{{ like.1 }},他的身高{{ tx.h }},体重{{ tx.w }}
f语法
@app.route("/")
def index():
is_login = True
return render_template("index_label.html",**locals())
Titleli{
list-style: none;
float: right;
margin-right: 20px;
}
a {
text-decoration: none;
color: black;
}
ul{
width: 90%;
margin: 0 auto;
}
{% if is_login %}
欢迎: 管理员 退出{% else %}
登录 注册{% endif %}
if elif else
{% if is_login == "True" %}
欢迎: 管理员 退出{% elif is_login=="unknow" %}
登录过期,请从新登录{% else %}
登录 注册{% endif %}
循环 for i in list
@app.route("/")
def index():
is_login = 'unknow'
person_list = [
{"name": "张三", "age": 10, },
{"name": "李四", "age": 20, },
{"name": "王五", "age": 30, },
{"name": "赵六", "age": 40, },
{"name": "田七", "age": 50, },
{"name": "冯八", "age": 60, }
]
return render_template("index_label.html",**locals())
姓名 | 年龄 |
---|
{% for p in person_list %}
{{ p.name }}{{ p.age }}{% endfor %}
jinja2定义了一个变量loop用于循环控制
{% for p in person_list %}
{{ loop.index }}
{{ loop.first }}
{{ loop.last }}
{{ loop.length }}
{% endfor %}
基于前端注入的过滤器
{{ | }}
jinja2模板静态文件
在web开发当中,有很多资源不用后台处理,比如,js,css,图片,页面直接加载就可以,我们把这样的资源叫做静态资源(static)
1、在项目目录下创建static目录
2、迁移静态文件到static目录下
3、修改前端静态路径
静态模板文件
加载静态资源时要注意修改js,css文件的路径
查找的使用