zoukankan      html  css  js  c++  java
  • Jinja2模板引擎语法

    模板案例

    eg:

    <!doctype html>
    <title>Hello template</title>
    {% if name %}
      <h1>Hello {{ name }}!</h1>
    {% else %}
      <h1>Hello flask!</h1>
    {% endif %}
    

    从上面的例子可以发现:
    模板表达式是包含在分割符{{}}内
    模板的控制语句都是包含在分割{% %}中
    模板注释都是包含在分隔符{# #}中

    • 变量 : 视图传递过来的数据 {{ 变量名称 }}
    • 标签 : 就是python中的循环分支结构... {% 标签名称 %}

    表达式分类

    表达式一般分为以下几种:

    表达式种类 举例
    变量(最常用) {{name}}
    基础类型( 字符串,数值,列表,元祖,字典,布尔值) 一般配合表达式使用{{ 'string' }}
    运算表达式(算术与逻辑) {{ False and True }} {{ 2 + 3 }}
    过滤器' | ' ,测试器' is ' 一般配合表达式
    函数调用 {{ func( ) }}
    “in”操作符 {{ 1 in [1,2,3] }}
    字符串连接符”~” {{ 'like' }}

    变量过滤器

    变量的值可以使用过滤器修改。过滤器在添加变量名之后,两者之间以竖线分隔。例如,下述模板把name变量的值变成首字母大写的形式:

    Hello, {{name|capitalize}}
    

    下面是Jinja2变量过滤器

    过滤器名 说明
    safe 渲染值时不转义
    capitalize 把值的首字母转换成大写,其他字母转换成小写
    lower 把值转换成小写形式
    upper 把值转换成大写形式
    title 把值中每个单词的首字母都转换成大写
    trim 把值首尾空格删掉
    striptages 渲染之前把值中所有的HTML标签都删掉

    控制结构

    在模板中使用条件判断语句

    {% if user %}
       Hello, {{ user }} !
    {% else %}
       Hello, Stranger !
    {% endif %}
    

    for循环渲染一组元素

    <ul>
    {% for comment in comments %}
          <li>{{ comment }}</li>
    {% endfor %}
    </ul>
    
  • 相关阅读:
    ubuntu lock
    ubuntu 源
    ubuntu server版 ssh配置有时没有sshd_config文件或者空文件的情况
    pip3 install tensorflow==2.2
    tensorflow安装提示load 失败
    wXgame上某游戏封包分析
    lazarus 使用微软detour库 delphi
    dll函数导出
    Error: Duplicate resource: Type = 24, Name = 1, Lang ID = 0000
    Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 0.065 s <<< FAILURE!
  • 原文地址:https://www.cnblogs.com/Acapplella/p/15069096.html
Copyright © 2011-2022 走看看