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