Flask模板简介

.模板 - Templates

    1.什么是模板
        模板:在Falsk中就是允许响应给用户看的网页
        在模板中,允许包含"占位变量"来表示动态的内容
        模板中最终也会被解析成字符串再响应给客户端,这一过程称之为"渲染"

        falsk中模板是依赖于Jinja2的模板系统
    2.模板的位置
        默认情况下.Flask会在程序文件夹中templates的子文件夹中搜索模板

        默认情况下,需要手动创建templates文件夹
    3.模板的渲染
        在视图中将模板文件(xx.html)渲染成字符串之后,再响应给客户端浏览器
        函数:rendet_template("xxx.html")
            return rendet_template("xxx.html")

    4.模板中的语法(重难点)
        .1变量:
            变量是一种特殊的占位符,告诉模板引擎该为位置的值是从渲染模板时的数据中提取出来的
            在视图中:
                @app.route("/")
                def index():
                    return render("xxx.html",变量1 = 值1,变量2 = 值2,...)
                    return
                    rendef_template('xxx.html',name = "laowang";age = 35)
            在模板中:
                {{变量名}}
                <h1>{{name}}</h1>
        2.过滤器
            1.什么是过滤器
                过滤器是允许变量输出前改变变量的值
            2.语法:
                {{变量|过滤器}}

                jinja2模板中常见过滤器
                过滤器名        说明
                capitalize     首字符变大写,其他变小写
                lower          将值转换为小写
                upper          将值转换为大写
                title          将值中的每个单词首字母变大写
                trim           去掉值两边的空格

            3.标签
                1.什么是标签
                    每个标签表示的是不同的服务器端的功能
                2.常用的标签
                    1.if标签
                        1.基本if结构
                            {% if 条件 %}
                            {% endif %}
                        2.if...else...结构
                            {%if 条件%}
                                满足条件时要运行的代码
                            {% else %}
                                不满足条件时要运行的代码
                            {% endif %}  

                        3.if ... elif ... else
                            {% if 条件1 %}
                                满足条件1要运行的代码
                            {% elif 条件2 %}
                                满足条件2要运行的代码
                            {% elif 条件3 %}
                                满足条件3要运行的代码
                            {% else %}
                                以上条件都不满足要运行的代码
                            {% endif %}
                    2.for 标签
                        {% for 变量 in 元组|列表|字典 %}
                        {% endfor %}

                        在jinja2模板中的循环中,支持内部变量 -loop
                        loop作用:记载当前循环中的一些相关信息
                        loop常用属性:
                            1.index
                                用法:loop.index
                                作用:记录当前循环的次数,从1开始记录
                            2.index 0
                                用法:loop.index0
                                作用:同上,从0开始记
                            3.first
                                用法:loop.first
                                作用:值为TURE,则表示当前循环时第一次循环
                            4.last:
                                用法:loop.last
                                作用:值为True,则表示当前循环是最后一次循环

                    3.macro标签(宏)
                        1.作用:
                            相当于在模板中声明函数

                        2.语法:
                            使用{% macro%} 声明宏

                            {% macro 名称(参数列表) %}
                                xxxx xxxx
                            {% endmacro %}
                        3.在独立的文件中去声明宏
                            1.创建macro.html模板文件
                              作用:定义项目中要用到的所有的宏
                            2.在使用的网页中,导入macro.html
                            {% import "macro.html" as macros %}
                    4.include 标签
                        将其它的模板文件包含到当前的模板文件中
                        语法:{% include "xxx.html"%}

猜你喜欢

转载自blog.csdn.net/zhangshuaijun123/article/details/83590497