Django 模板变量及模板过滤器

模板变量

  • 语法:{{ 变量名 }}
  • 命名由字母和数字以及下划线组成,不能有空格和标点符号
  • 可以使用字典、模型、方法、函数、列表
  • 不要和python或django关键字重名
  • 变量和查找
    • 注:
    • 如果data是一个字典,那么访问data.items将会访问data这个字典的key名为items的值,而不会访问字典的items方法
    • 点在模板渲染时有特殊的含义、变量名中点表示查找


过滤器

  • 语法
    • 语法:{{ str | lower | capfirst | cut:" "}}
    • 先把所有字符变成小写,再把第一个字符转换成大写,最后把字符串中所有的空格去掉
    • 注意:使用参数的时候,冒号和参数之间不能有任何空格,一定要紧挨着
  • 常用过滤器
    • add :字符串相加,数字相加,列表相加,如果失败,将会返回一个空字符串
    • default: 提供一 个默认值,在这个值被dj ango认为是False的时候使用。比如:空字符串、None。区别于default_ if_ none,这个只有在变量为None的时候才使用默认值
    • first:返回列表中的第一个值
    • last: 返回列表中的最后一一个值
    • date:格式化日期和时间
    • time:格式化时间
    • join:跟python中的join-样的用法
    • length: 返回字符串或者是数组的长度
    • length_is:字符串或者是数组的长度是否是指定的值
    • lower: 把所有字符串都变成小写
    • truncatechars:根据后面给的参数,截断字符,如果超过了用.表示
    • truncatewords: 同truncatechars,这个是以一个单词为单位进行截断。以上两个有xxx_ htm1类型的,针对html,截断标签中的字符,而不会截断标签
    • capfirst: 首字母大写
    • slice: 切割列表。用法跟python中的切片操作是一样的,区间是前闭合后开放
    • striptags: 去掉所有的html标签
    • safe:关闭变量的自动转义
    • floatformat: 浮点数格式化
  • date和time过滤器格式
    • {{ now|date:'Y/m/d/H:i:s' }}
    • Y:四位数的年。如: 1999
    • y:两位数的年。如: 99
    • m:两位数的月。如: 01, 09
    • n:一位数的月。如:1,9,12
    • d:两位数的日。如: 01,09,31
    • j:一位数的日。如: 1,9,31
    • g: 12小时制的一位数的小时。如: 1, 9,12
    • G: 24小时制的一位数小时。如:日, 8,23
    • h: 12小时制的两位数的小时。如: 01, 09,12
    • H: 24小时制的两位数的小时。如: 01,13,24
    • i:分钟。从00-59
    • S:秒。从00-59
  • 自动转义
    • <:转义成&lt;
    • >:转义成&gt;
    • ‘:转义成&#39;
    • “:转义成&quot;
    • &:转义成&amp;


静态文件

  • 目录
    • 在项目目录下创建static的目录, 为了区分开各种类型的文件分别创建css,image,js的目录
  • 配置
    • 在settings.py文件中添加STATICFILES_DIRS,设置静态文件目录路径,同templates
      • STATIC_URL = '/static/'
      • STATICFILES_DIRS = [
      • os.path.join(BASE_DIR,'static')
        
      • ]
  • 引用
    • 模板最上面加 {% load static %}
    • <link rel="stylesheet" href="{% static 'css/test_css.css' %}">
    • <img src="{% static 'img/test.png' %}">
    • <script src='{% static 'js/test_js.js' %}'></script>




路漫漫其修远兮,吾将上下而求索
原文地址:https://www.cnblogs.com/jiyu-hlzy/p/15038236.html