def tmp_demo(request):
# 分配数据
context = {
'var':'iloveyou',
'arr':['aa','bb','cc'],
'user':{'username':'admin','email':'admin@qq.com'},
'con':'<h1 style="color:red;">iloveyou</h1>',
# 'con':'<script>alert("hello")</script>'
'num':12
}
# 加载模板
return render(request,'tmp/1.html',context)
1.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>模板文件</title>
</head>
<body>
<div style="min-height: 400px;">
<ul>
<li>过滤器的使用:转小写 {{ var|upper }}</li>
<li>过滤器的使用:链式使用 {{ var|upper|lower }}</li>
<li>自动转义HTML{{ con }}</li>
<li>关闭自动转义{{ con|safe }}</li>
<li>分割自动分割:内容自动填充到:‘’里{{ arr|join:'</li><li>' }}</li>
<li>如果没有该变量,那么输出默认值{{ abc|default:'AAA'}}</li>
<li>加法运算:用num变量加上5{{ num|add:5 }}</li>
<li>减法运算:用num变量减去5{{ num|add:-5 }}</li>
{% load diytags %} {# 导入diytags.py模板 #}
<li>自定义过滤器转大写:{{ var|yc_upper }}</li>{# 自定义转大写 #}
<li>自定义标签加法运算:{% jia 10 2 %}</li>{# 自定义加法#}
<li>乘法{ % widthratio 5 1 100 % } {# note:等同于:(5 / 1) * 100 ,结果返回500 #}</li>
<li>除法{ % widthratio 5 100 1 % } {#note:等同于:(5 / 100) * 1,则结果返回0.05 #}</li>
</ul>
</div>
</body>
</html>
自定义 标签 或 过滤器
{{}}的是过滤器,{%%}的是标签
1.在应用下创建一个 templatetags 文件夹
2,在 templatetags 包下创建 一个模块文件 diytags.py
from django import template
register = template.Library()
# 如果register.后面是filter那么就是定义了一个,过滤器
@register.filter
# 自己创建函数,并进行操作,然后返回
def yc_upper(val):
# print ('val from template:',val)
#转大写
return val.upper()
# 自定义标签
from django.utils.html import format_html
# 如果register后面是simple_tag,那么就是自定义一个标签
@register.simple_tag
def jia(a,b):
res = int(a) + int(b)
return res
3,在需要使用的模板中 导入 自定义的模块