zoukankan      html  css  js  c++  java
  • django模板语法

    前言:django的模板语法基本和flask的jinja2基本一样。下面比较一下两个模板语法的区别。

    1.模板变量

    django:{{  变量  }}    # 因为django只有一个context返回,全部数据都集中在一起

    jinja2:{{  对象.变量  }}

    2.根据列表的下标获取值

    django:{{  列表.0  }}

    jinja2:{{  列表[0]  }}

    3.根据字典的键获取字典的值

    django:{{  字典.key  }}

    jinja2:{{  字典[key]  }}或者{{  字典.key  }}

    4.for循环时取序号

    django:
    {% for item in 列表 %} {{forloop.counter}} <1-- 表示当前是第几次循环,从1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从0开始 -->

    {% endfor %}

    jinja2:
    {% for item in 列表 %} {{loop.index}} <1-- 表示当前是第几次循环,从1开始 --> {{loop.index0}} <!-- 表示当前是第几次循环,从0开始 -->

    {% endfor %}

    5.列表为空时执行逻辑

    django:
    {% for item in 列表 %} {{forloop.counter}} <1-- 表示当前是第几次循环,从1开始 --> {{forloop.counter0}} <!-- 表示当前是第几次循环,从0开始 --> {% empty %} 列表为空或不存在时执行此逻辑 {% endfor %}

    jinja2:无

    6.运算符之间的空格

    django:{% if a==1 %}  # 错误

          {% if a == 1 %}  # 正确

    jinja2:两种都可以

    7.过滤器

    django:变量|过滤器:参数

    jinja2:变量 | 过滤器(参数)    常见的jinja2过滤器:https://www.cnblogs.com/chichung/p/9775099.html

    django的常见几个过滤器如下:

    • safe,禁用html转义(显示html标签样式,而不是字符串)
    • length,长度,返回字符串包含字符的个数,或列表、元组、字典的元素个数。
    • default,默认值,如果变量不存在时则返回默认值。

      data|default:'默认值'
      
    • date,日期,用于对日期类型的值进行字符串格式化,常用的格式化字符如下:

      • Y表示年,格式为4位,y表示两位的年。
      • m表示月,格式为01,02,12等。
      • d表示日, 格式为01,02等。
      • j表示日,格式为1,2等。
      • H表示时,24进制,h表示12进制的时。
      • i表示分,为0-59。
      • s表示秒,为0-59。
      value|date:"Y年m月j日  H时i分s秒"

    8.多行注释

    django:

    {% comment %}
    ...
    {% endcomment %}

    9.对有需要的block进行重写

    django:

    • 不用重写父模版中的所有block,如果子模版没有重写,则使用父模版定义的默认值。
    • 可以使用 block.super 来包含父模板的块中定义的内容,如下

    {% block 名称 %}
          子模板的内容
          {{ block.super }}    显示父模板中block的内容
    {% endblock %}

    {{ block.super }}——引用上级代码块在其基础上进行一些修改

    flask:

    同样原理,不过用的是{{  super()  }}

  • 相关阅读:
    NGUI版虚拟摇杆
    设计模式 --外观模式(Facade)
    JavaScript提高:005:ASP.NET使用easyUI TABS标签显示问题
    提高工作效率:15个实用的项目管理工具
    前端开发面试题集锦(一)
    SWF代码分析与破解之路 (YueTai VIP视频信息获取工具) Socket续篇
    Android Studio 设置项目Module编码,解决Android Studio项目执行时乱码问题
    HDU2256-Problem of Precision(矩阵构造+高速幂)
    oracle初始安装大小
    强制杀oracle进程
  • 原文地址:https://www.cnblogs.com/chichung/p/9898017.html
Copyright © 2011-2022 走看看