• Jinja2学习


    模板: 知名模板引擎:jinja2(flask默认的模板引擎) Mako

    template模板路径:

    1.在渲染模板的时候,会默认从根目录下的templates目录下查找模板文件

    2.也可以自定义模板路径,Flask类的构造函数中定义了模板路径参数,所以可以在Flask初始化的时候指定template_folder参数。

    模板变量传参:
    单个变量可直接放在render_templates()参数中
    多个变量,可将参数变量 值放在一个字典中,
    render_template()函数中加入**字典名即可

    前端使用变量参数:
    {{用来存放变量 }}
    {% 用来执行函数或者逻辑代码 %}
    快捷键:Tab
    开始标签 结束标签
    jinja的for循环:
    {% for foo in list %}
    {% if loop.first %}
    ...
    {% endif %}
    {% endfor %}
    其他loop方法:
    loop.last loop.index0(当前迭代的索引,从0开始) loop.index,loop.length (序列的长度)
    jinja2模板过滤器:
    作用:对后台传到前台的参数进行数据处理
    使用:通过管道符号{{变量名|过滤器名 }}

    常用过滤器:
    默认值过滤器:1.{{ 变量名|default('xxx',boolean=False)}}2.可以使用or来替代default {{ 变量名 or "" }}

    转义过滤器:jinja2自动转义默认成字符串,而不是html标签
    使用过滤器:防止转义 块区域防止转义:
    {% autoescape off %} {% endautoescape%}
    单变量防止转义:
    {% 变量名|safe %}
    某个字符串进行进行转义:
    escape

    format过滤器:
    {{ "我的名字是 %s " |format("hello") }}

    其他过滤器:
    first last length join int lower replace( old,new) truncate(length=30)截取 striptags string wordcount()计算单词个数

    自定义过滤器:
    在后端定义函数:自定义函数,然后注册到jinja2模板当中
    @app.template_filter('my_func')
    def func(value):
    value=xxx.x
    return value


    宏:
    概念:模板中的宏和python中的函数类似,也可以传递参数,但不能有返回值,可以将经常用到的代码片段放到宏中,然后把不固定的值抽取出来当成一个变量参数

    使用:参数可以为默认值
    1.可放在本html问价中
    2.也可以放在单独的tml文件中,将它导入 {% from .宏文件名 import 宏 as %}(导入宏文件,路径默认是在templates目录下查找)
    变量值的自动传递:
    导入宏的时候 若想把被导入宏的html文件的变量值自动传递到宏中,则导入时加入 with context

    定义宏:
    {% macro input(name,value='',type='{{ value }}' %}
    <input type="type" name="{{ name }} " value="{{ value }}">
    {% endmacro %}
    使用宏:
    <p>{{ input('username') }}</p>
    <p>{{ input('password',type='text')}} </p>

    jinja2的include标签:
    1.这个标签相当于直接将模板中的代码复制粘贴到当前位置
    2.“include"标签,如果想要使用父模板的变量,直接用就可以了,不需要context
    3."include"的路径,直接从templates根目录下查找
    set with 定义变量用法:在模板中,可以用set定义变量

  • 相关阅读:
    《Java基础知识》Java继承的概念和实现
    《Java基础知识》Java包装类,拆箱和装箱
    《Java基础知识》Java方法重载和重写
    《Java基础知识》Java this关键字详解
    《Java基础知识》Java变量作用域
    51nod 1080:两个数的平方和
    51nod 1013:3的幂的和 快速幂
    POJ 1019:Number Sequence 二分查找
    51nod 1393:0和1相等串
    51nod 1267:4个数和为0 哈希
  • 原文地址:https://www.cnblogs.com/szj666/p/11479370.html
Copyright © 2020-2023  润新知