模板层

变量查询

使用.进行深度查询(能够查询列表的索引,字典的key以及对象的方法,可是方法不能加括号,因此只能使用没有参数的方法)css

views中变量准备: now = datetime.datetime.now() emp_list = [] dic = {'name': 'lqz', 'age': 18, 't': [1, 2, [2, 3]]} emp_str = '' list2 = [1,2,3,6,5] list3 = [[1,2,3],[4,5,6],[7,8,9]] list4 = [[],[4,5,6],[7,8,9]] tag_str = '<a href="https://www.baidu.com">点我</a>' 

过滤器

返回不一样格式的日期 {{ now|date:'Y-m-d H:i:s' }} {{ now|date }} # 有默认值能够不传参数 若是一个变量是false,使用给定的默认值。不然,使用变量的值。 {{ emp_list|default:'我是空列表' }} {{ emp_str|default:'我是空字符串' }} 返回值的长度。它对字符串和列表都起做用 {{ 'asdg'|length }} 将值格式化为一个 “人类可读的” 文件尺寸(例如 '13 KB', '4.1 MB'{{ '1024'|filesizeformat }} 切片操做 {{ 'sadgdasfdsa'|slice:'1:4' }} {{ list2|slice:'1:3' }} 若是字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾,...会计入进长度 字符数: {{ 'asgasdfasd'|truncatechars:'8' }} 单词数:...省略号不计入长度 {{ 'i am strong'|truncatewords:'2' }} safe过滤器,能够使带标签的字符串直接被识别,否则会用&gt;代替>{{ tag_str|safe }} 也能够在Views视图中处理 from django.utils.safestring import mark_safe tag_str = mark_safe(tag_str) 俩参数能够传字符串和数字 {{ 12|add:3 }} {{ 'eee'|add:"3rrr" }}

标签

for 和 if 标签,for中的forloop {% for foo in list3 %} {% for i in foo %} {% if forloop.first %} {{ i|add:'10' }} {% elif forloop.last %} {{ i|add:'100' }} {% else %} {{ i }} {% endif %} {% endfor %} {% endfor %}
for中的empty {% for foo in emp_str %} {% empty %} {{ '空' }} {% endfor %}
with标签 注意:等号两边不能有空格 {% with aa=dic.name%} {{aa}} {%endwith%} {% with dic.name as name %} {{ name }} {% endwith %}

自定义过滤器

1 先去setting里面把app名字配置上 2 再app目录下建立一个templatetags模块 3 写py文件(my_test.py4 from django import template 5 register=template.Library() 6 写函数  @register.filter(name='my_add') def my_add(a,b): if type(a) == type(b): return a+b else: return str(a)+str(b) 7 模板内: {% load my_test %} {{'lqz'|my_add:'isbig' }} #最多只能传两个参数 

自定义标签

1 先去setting里面把app名字配置上 2 再app目录下建立一个templatetags模块 3 写py文件(my_test.py4 from django import template 5 register=template.Library() 6 写函数 @register.simple_tag(name='factorial') def factorial(x): if type(x) != int: return False num = 1 for i in range(x): num *= i+1 return num 7 模板: {% load my_test %} {% factorial 5 %} #以空格作分割,传参数 

静态文件导入

方法一: <link rel="stylesheet" href="/static/mycss.css"> 方法二:改static文件的文件名不会受到影响 {% load static %} <link rel="stylesheet" href="{% static 'mycss.css' %}">
相关文章
相关标签/搜索