flask模板-jinja2语法的使用

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文件的路径


查找的使用
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。