django的模板系统

Posted q767498226

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了django的模板系统相关的知识,希望对你有一定的参考价值。

一.模板渲染语法

  1.变量

    {{ 变量 }}

  2.逻辑

    {% 逻辑语 %}

二.变量

  在模板中有变量时,模板引擎会去反向解析找到这个传来的变量,然后替换掉.

  .(点),在模板中是深度查询据点符,它的查询顺序: 字典 => 属性或方法 => 数字索引

三.过滤器

  1.语法

     {{ value|filter_name:参数}}

  2.常用内置过滤器

    {{ value|default:"nothing"}}  如果变量为空就是用默认值

    {{ value|length }}       返回长度,用于字符串和列表

    {{ value|filesizeformat}}     将变量格式化为文件大小格式

    {{ value|slice:"::-1"}}     切片

    {{ value|date:"Y-m-d H:i:s"}}   格式化时间

    {{ value|safe}}         设置为安全值,不会误判为xss攻击

    {{ value|truncatechars:6}}    以数量(包含三个点)截断字符串,剩余部分显示...

    {{ value|truncatewords:6}}    以单词数量截断字符串,用空格来识别单词

    {{ value|cut:" "}}        移除value中的字符

    {{ value|join:"_"}}       用字符串连接列表

四.逻辑标签

  1.for循环

    {% for i in lst %}

      {{ forloop.counter }}{{ i }}

    {% endfor %}

 

    forloop.counter    从1开始的索引值

    forloop.counter0     从0开始的索引值

    forloop.revcounter     倒叙到1

    forloop.revcounter0    倒叙到0

    forloop.first      判断当前循环是不是第一个,返回bool

    forloop.last      判断当前循环是不是最后一个,返回bool

    forloop.parentloop   获取本层循环的父级循环对象,能用以上方法

  2.for...empty

    {% for i in lst %}

      {{ i }}

    {% empty %}

      这个列表是空的,不是遍历到的值是空的

    {% endfor %}

  3.if条件判断,基本支持python中的判断,但是不支持连续判断

    {% if 条件 %}

      结果

    {% elif 条件 %}

      结果

    {% else %}

      结果

    {% endif %}

  4.with 别名

    {% with a = 复杂变量 %}  / {% with 复杂变量 as a%}

      {{ a }}        只能在with语句中使用

    {% endwith %}

  5.csrf_token  跨站请求伪造保护

    {% csrf_token %}  防止post请求登陆时恶意攻击

五.继承

  1.模板

    {% block 变量名 %}

      模板预留位置

    {% endblock %}

  2.继承板

    {% extends "模板.html" %}

    {% block 变量名 %}

      替换内容

    {% endblock %}

以上是关于django的模板系统的主要内容,如果未能解决你的问题,请参考以下文章

Django 模板系统

Django之博客系统:自定义模板标签

Django模板系统

Django模板系统

Django之模板系统

Django路由系统视图模板