目录
模板变量及过滤器参见:Django框架——URL路由及模板渲染方式
模板路径配置
配置模板路径是通过配置文件setting.py中的TEMPLATES来设置。这是一个设置选项的列表,模板大都包含两项通用设置,有两种方式配置模板:
第一种::DIRS 定义一个目录列表,模板引擎按列表顺序搜索这些目录以查找模板源文件。将templates放在主项目目录下。
第二种: APP_DIRS告诉模板引擎是否应该进入每个已安装的应用中查找模板,值为True则模板会去安装了的app下面的templates文件夹查找模板。因此也可以在每个app的里面创建模板目录templates存放模板,这种方式需要将这个app添加到setting.py文件的INSTALLED_APPS列表中。
过滤器
- add:字符串相加、数字相加、列表相加、如果失败将返回一个空的字符串
- default:提供一个默认值,在这个值被django认为是False的时候使用,如空字符串。
- first:返回第一个值。
- last:返回最后一个值。
- date:格式化日期和时间。
- time:格式化时间。
- join:与python的join使用方法相同。
- length:返回对象的长度。
- length_is:对象的长度是否是指定的值,判断后返回一个布尔值。
- lower:将字符串小写。
- truncatechars:根据后面给出的参数截断字符串,如果超出就用...表示。
- truncatewords:同truncatechars,以一个单词为单位进行截断。
- capfirst:首字母大写。
- slice:切割列表,用法与python中的切片一样,区间是前闭后开。
- striptags:去掉所有的html标签。
- safe:关闭变量的自动转义。
- floatformat:浮点数的格式化。
过滤器时间格式
- 四位年:Y,2021
- 两位年:y,21
- 两位月:m,01
- 一位月:n,1
- 两位日:d,05
- 一位日:j,5
- 十二小时制,两位时:h,09
- 十二小时制,一位时:g,9
- 二十四小时制,两位时:H,08
- 二十四小时制,一位时:G,8
- 分:i,00-59
- 秒:s,00-59
注意:这里返回的当前时间都是使用标准零时区时间
# views.py文件
def ren(request):
st = 'THIS IS A FLOWER!'
complexs = {
'st':st,
'p':'',
'num1':5,
'num2':3,
'time_now':datetime.datetime.now,
}
return render(request,'red.html',context = complexs)
# urls.py文件
from django.urls import path,re_path
from . import views
urlpatterns = [
path('index/',views.ren),
]
<!-- 模板文件 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>模板渲染——过滤器</title>
<style>
p{
font-size: 20px;
color: #d70b35;
}
</style>
</head>
<body>
<p>这是一个字符串:{{st}}</p>
<p>求和:{{num1|add:num2}}</p>
<p>设置默认值变量:{{p|default:'默认值变量999'}}</p>
<p>设置默认值变量:{{p|default_if_none:'none'}}</p>
<p>字母变小写:{{st|lower}}</p>
<p>第一个元素:{{st|first}}</p>
<p>最后一个元素:{{st|last}}</p>
<p>默认日期格式:{{time_now|time}}</p>
<p>默认时间格式:{{time_now|date}}</p>
<p>日期时间格式化(24小时制,四位年,两位月日):{{time_now|date:'Y-m-d H-i-s'}}</p>
<p>日期时间格式化(12小时制,两位年月日):{{time_now|date:'y-n-j h-i-s'}}</p>
<p>时间格式化:{{time_now|time:'H-i-s'}}</p>
<p>求字符串长度:{{st|length}}</p>
<p>判断长度是否符合某个长度,返回一个布尔值:{{st}}的长度为{{st|length}},判断结果为{{st|length_is:10}}</p>
</body>
</html>