zoukankan      html  css  js  c++  java
  • 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定义变量

  • 相关阅读:
    Codeforces Round #733
    [ZJOI2007] 时态同步(树形dp)
    最大子树和(树形dp)
    P2015 二叉苹果树
    没有上司的舞会(经典树形dp)
    P3884 [JLOI2009]二叉树问题(LCA)
    Bin Packing Problem(线段树 + multiset)
    P4281 [AHOI2008]紧急集合 / 聚会(最近公共祖先)
    P3128 [USACO15DEC]Max Flow P(LCA 树上差分)
    java中Set接口用法
  • 原文地址:https://www.cnblogs.com/szj666/p/11479370.html
Copyright © 2011-2022 走看看