1,变量在视图函数中通过 return render(request,‘.html’,{'num':num})传入 可以直接引入local()
在前端通过.与法进行访问 可以将全部类型传入,包括函数返回值,类的__str__,函数不带参数
2.dtl模板语言的filter和tag:
常用的filter |add:2 |default:0 |data:'Y-m-d' <a>{
{ name|truncatechars:0 }}</a> <a>{ { dict1.usr|slice:'0:1'}}</a> -- 注:过滤器可以串联操作,可以拥有0个或1个参数-- 增加 add:num
-- 字符串长度 length -- 默认值 default:'默认值' # 变量不存在或为空 -- 全大写 upper -- 全小写 lower -- 切片 slice:'0:-1' -- 将数字转换为文件大小 filesizeformat -- 字符串隐藏 truncatechars:13 # 只显示10个字符,后置字符都用...来替代 -- 时间 date:'Y-m-d' -- 转换原意 safetag 可用于反向解析 用于{%now:'Y-m-d' 'h-i-s'%} 起别名{% with ‘hshs' as nu’%} {%end with%} -- Django CSRF认证 {% csrf_token %}
if 和 for 用法
`python
'''语法:{% if 条件1 %} 结论1{% elif 条件2 %} 结论2{% else %} 结论n{% endif %}注:
1. if的条件可以添加filter2. 可以嵌套'''```## 七、迭代器
```python
'''{% for foo in iterate %} { { forloop }}{% empty %} 可迭代对象为空{% endfor %}注:
1. iterate为可迭代对象2. iterate可以添加filter3. forloop变量为存放迭代信息的字典,父级forloop字典,开始索引从0编号或1编号,倒序索引从0编号或1编号,是否是第一次或最后一次循环4. empty分支会在可迭代对象不存在或空时执行## 八、自定义过滤器与标签
```python
'''步骤:1. 在注册的app下创建templatetags包2. 在模板中自定义模块py文件,如:owen_tags.py3. 要在使用自定义filter与tag的模板页面中加载自定义模块py文件,案例:{% load owen_tags %}4. 自定义filter语法
from django.template import Libraryregister = Library()@register.filter(name='jump')def owen_jump(value, arg): try: return value * int(arg) except (ValueError, TypeError): return ''5. 自定义tag语法@register.simple_tag(name='add_two')def owen_add(arg1, arg2): try: return int(arg1) + int(arg2) except (ValueError, TypeError): try: return arg1 + arg2 except Exception: return ''