A-3-1模板变量,过滤器和静态文件的引用(后续1)
模板路径查找顺序
(找到一个就返回)
1. DIRS(集中方便管理)
#在tempaltes内新建一个app同名文件夹的原因是
分开不同app下的相同模板名 防止覆盖
def Mtry(request):
return render(request,'video/video_text.html')
'video/video_text.html 一个模板地址
在导入模板前加app名的原因也是如此
2. app目录下(分散方便分离)
模板变量
------------------------------------
1.静态页面
2.动态页面---只有动态页面会用到模板变量
render(request,’xxx.html‘) content 可以把参数(模板变量)传入html文件内
1. render(request,’xxx.html‘,content={
'xx':xx
})
使用时在html内 在{{ }}内写参数名
2.当要导入列表和字典中的某一个值时 用xx.1 来表示列表中第2个 xx.name 用.来表示调用
------------------------------------
变量的命名语法
不能关键字
不能下划线开头
不能数字开头
变量的解析规则
1.计算变量,将其替换为结果
2.遇到(.)的时候按以下顺序查找:
字典键值对查找
属性或方法查找
数字索引查找
3.如果参数是一个可调用的(方法或函数)。则调用它时不带参数。需要带参数的函数的情况。则渲染失败,返回空白
def index(request): now =datetime.now() lt= [1,2,3,4,5,6] def func(): return '这是一个函数' print(type(type(func))) #类别为type return render(request,'video/index.html',context={ 'now':now, 'lt':lt, 'func':func, #不管加不加括号结果都是已经运行的 'tfunc':type(func()) #html渲染失败 不支持 type的读取 })
模板过滤器 filter
-常用模板过滤器
add 将参数与值相加 首先尝试转换成整数相加,失败,则尝试所有可能,字符串,列表等。{{ value|add:"2" }}
capfirst 首字母大写,如果第一个字母不是字母则不起作用。{{ value|capfirst }}
date 日期格式化 {{ value|date:"D d M Y" }}
time 时间格式化 {{ value|time:"H:i" }} 格式化格式见官方文档: https://docs.djangoproject.com/en/2.1/ref/templates/builtins/#date
default 如果变量解析失败,使用给定的默认值。{{ value|default:"nothing" }}(注意如果value是''空字符串,输出将会是'nothing')
’‘(空字符)和None都会按解析失败处理
first 返回列表的第一个元素 {{ value|first }}
last 返回列表的最有一个元素 {{ value|last }}
slice 返回一个列表的切片 {{ some_list|slice:":2" }}
join 连接字符串列表 与str.join(list)一样 {{ value|join:" // " }}
floatformat 浮点数格式化 不指定小数位参数,默认保留一个为小数
value Template Output
34.23234 {{ value|floatformat }} 34.2
34.23234 {{ value|floatformat:3 }} 34.232
length 返回字符串或列表的长度
length_is 判断字符串或列表长度是否指定的值,相等返回True {{ value|length_is:"4" }}
lower 字符串中的字母都变小写{{ value|lower }}
upper 字符串中的字母都变大写{{ value|upper }}
safe 关闭变量的自动转义,使html标签生效{{ value|safe }}
title 标题化,首字母大写 {{ value|title }}
-- safe过滤器
默认:变量不解释html代码 -- safe过滤器:变量解释代码
静态文件
html文件的修饰
- css
- js
- img
1.路径配置
STATIC_URL = '/static/' STATICFILES_DIRS=[os.path.join(BASE_DIR,'static')]
2.静态文件的引入
1硬编码 通过 STATIC_URL
<head> <link rel="stylesheet" href="/static/video/css/index.css"> </head>
2.模板标签 相对路径 导入
{% load static %}
<head>
<link rel="stylesheet" href="{% static 'video/css/index.css' %}">
</head>

浙公网安备 33010602011771号