一:模板组成
HTML代码 + 逻辑控制代码
逻辑代码组成格式:
使用大括号来引用变量, {{ var_name }}
二: Template和Context对象

//进入该的django的项目环境 >>>python3 manage.py shell >>>from django.template import Context, Template >>> t = Template('My name is {{ name }}.') //创建模板 >>> c = Context({'name': 'Stephane'}) //创建上下文 >>> t.render(c) //使用模板渲染上下文 //同一个模板,多个上下文,可以创建模板后,通过for循环渲染上下文 t = Template('Hello, {{ name }}') for name in ('John', 'Julie', 'Pat'): print t.render(Context({'name': name}))
三: 模板获取上下文变量的值
//上下文传值 def showTemplate(request): # value = 'NBA' # value = [1, 22, 333] # value = {'key1': 'value1', 'key2': 'value2', 'key3': 'value3'} # value = datetime.datetime.now() class Person: def __init__(self,name,age): self.name = name self.age = age value = Person('Jack', 18) return render(request, 'template.html', {'value': value}) # return render(request, 'template.html', locals()) //模板渲染 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> //直接显示 {#{{ value }}#} //数组根据索引取值 {#{{ value.0 }}#} //字典根据键取值 {#{{ value.key1 }}#} //对象点调用获取属性 {#{{ value.year }}#} {#{{ value.name }}#} </body> </html>
三: 过滤变量
//字母大写, 'nba'-->'NBA'
{{ value|upper }}
//数字相加
{{ value|add:2 }}
//首字母大写
{{ value|capfirst }}
//删除指定字符串
{{ value|cut:' ' }}
//时间显示格式
{{ value|date:'Y-m-d'}}
//如果为空,默认显示
{{ value|default:'null' }}
//字符串大小,xxKB
{{ value|filesizeformat }}
//第一个字符
{{ value|first }}
//字符串长度
{{ value|length }}
//截取字符串,截取到倒数第二位
{{ value|slice:'-1' }}
//给变量中的引号加上斜线
{{ value|addslashes }}
//url转码
{{ value|urlencode }}
//将字符串转为浏览器识别的HTML标签,两种方式都可以
1.{{ value|safe }}
2. {% autoescape %}
{{ value }}
{% endautoescape %}