模板变量
模板变量的引入
模板变量使用规则
1.语法: {{ 变量名 }}
2.命名由字母和数字以及下划线组成,不能有空格和标点符号
3.可以使用字典、模型、方法、函数、列表
4.不要和python或django关键字重名
5.变量和查找
注意:
1.如果data是一个字典,那么访问data.items将会访问data这个字典的key名为items的值,而不会访问字典的items方法。
2.点在模板渲染时有特殊的含义。 变量名中点表示查找。
模板变量的举例
以app-book下的views.py举例
ls = [1,2,4,5]
dic = {"a":1,"b":2}
def hello():
return "django"
class Fruits:
def __init__(self,name,color):
self.name = name
self.color = color
def say(self):
return "HAHAHA"
ap = Fruits("apple","red")
def temp_v(request,**kwargs):
return render(request, 'temp_v.html',
context={
'book':"python",
'hello':hello,
'ls':ls,
'dic':dic,
'fruits':ap,
'fruits_say':ap.say
})
temp-v.html中
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp_v</title>
</head>
<body>
{{ book }}<br>
列表{{ls.1}}<br>#ls.1表示取列表中第一个元素
字典{{ dic}}<br>
字典中的键{dic.b}<br>
类{{ fruits }}<br>
类方法{{ fruits_say }}<br>
类方法2{{ fruits.say}}
</body>
</html>
过滤器
作用:对变量进行过滤。在真正渲染出来之前,过滤器会根据功能处理好变量,然后得出结果后再替换掉原来的变量展示出来。
语法:{{fruits|lower}}
常用的过滤器
date和time过滤器格式
修改时间为上海时间
主项目settings.py里
LANGUAGE_CODE = 'zh-hans'#中国时区 TIME_ZONE = 'Asia/Shanghai'#上海时区
过滤器的例子
def temp(request,**kwargs):
return render(request, 'temp_v.html',
context={
'name':'阿杰 阿佳',
'age':18,
'none':None,
'li':ls,
'dic':dic,
'now':datetime.datetime.now(),
'str':'i love you',
'html':'<i>this is python<i>',
'zy':'大于:> 小于:<',
'float':127.0193,
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>temp_v</title>
</head>
<body>
名字:{{ name }}
名字切除空格:{{ name|cut:' ' }}<br>
年龄{{age}}
年龄+1{{age|add:1}}<br>
空值:{{ none}}
空值设置:{{ none|default:'阿佳'}}<br>
列表第一个值:{{li|first}}
列表最后一个值:{{li|last}}<br>
日期时间:{{ now }}<br>
日期:{{ now|date }}<br>
时间:{{ now|time }}<br>
日期时间:{{ now|date:"日期:Y/m/d 时间:H:i:s"}}<br>
字符串拼接{{ str|join:'-' }}<br>
字符串大写{{ str|upper }}<br>
切片{{ str|slice:'2:4'|upper }}<br>
html{{ html }}<br>
html{{ html|safe }}<br>
大小于{{ zy}}<br>
><{{ zy|safe }}<br>
浮点数{{ float }}<br>
保留一位小数{{ float|floatformat }}<br>
保留两位小数{{ float|floatformat:'2' }}<br>
</body>
</html>
静态文件
目录
主项目下创建static(包含css,js,img等)
配置
在settings.py文件中添加STATICFILES_DIRS
设置静态文件目录路径,同templates*。