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
- 自动转义
<:转义成<
>:转义成>
‘:转义成'
“:转义成"
&:转义成&
静态文件
- 目录
- 在项目目录下创建static的目录, 为了区分开各种类型的文件分别创建css,image,js的目录
- 配置
- 在settings.py文件中添加STATICFILES_DIRS,设置静态文件目录路径,同templates
STATIC_URL = '/static/'
STATICFILES_DIRS = [
-
os.path.join(BASE_DIR,'static')
]
- 在settings.py文件中添加STATICFILES_DIRS,设置静态文件目录路径,同templates
- 引用
- 模板最上面加
{% 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>
- 模板最上面加