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定义变量

  • 相关阅读:
    Android Studio如何设置代码自动提示
    Java中Map的用法详解
    Android 管理Activity中的fragments
    Android
    WebApp之Meta标签
    iOS中为网站添加图标到主屏幕以及增加启动画面
    HTML5添加 video 视频标签后仍然无法播放的解决方法 IIS添加MIEI类型
    WebApp之 apple-touch-icon
    Eclipse编辑器基本设置
    Redis监控方案
  • 原文地址:https://www.cnblogs.com/szj666/p/11479370.html
Copyright © 2011-2022 走看看