为什么使用过滤器:
因为DTL中不支持函数的调用形式,因此不能传递参数,为了解决,在HTML文件中无法给函数传递参数的问题。使用了过滤器,
注意:过滤器最多只能处理两个参数。
实验代码:
views.py
from django.shortcuts import render
def greet():
return “hello world”
def index(request):
context ={
“greet”:greet
}
return render(request,“index.html”,context=context)
index.html
使用add过滤器:
使用范围,1,可以相加两个数字,2,可以拼接两个字符串,3.可以将两个列表相加
url.py文件:
from django.urls import path
from . import views
urlpatterns = [
path(’’, views.index),
path(‘add/’, views.add_view),
]
views.py文件:
from django.shortcuts import render
def greet():
return “hello world”
def index(request):
context ={
“greet”:greet
}
return render(request,“index.html”,context=context)
def add_view(request):
context = {
“values1”:[1,2,3],
“values2”:[4,5,6]
}
return render(request,‘add.html’,context=context)
add.html文件:
CUT过滤器:
将字符串中,指定的字符去掉。
url.py文件:
from django.urls import path
from . import views
urlpatterns = [
path(’’, views.index),
path(‘add/’, views.add_view),
path(‘cut/’, views.cut_view),
]
views.py文件:
from django.shortcuts import render
def greet():
return “hello world”
def index(request):
context ={
“greet”:greet
}
return render(request,“index.html”,context=context)
def add_view(request):
context = {
“values1”:[1,2,3],
“values2”:[4,5,6]
}
return render(request,‘add.html’,context=context)
def cut_view(request):
return render(request,“cut.html”)
cut.html文件:
date过滤器:
date.html文件:
view.py文件:
from django.shortcuts import render
from datetime import datetime
def date_view(request):
context = {
“today”:datetime.now()
}
return render(request,‘date.html’,context=context)
default:过滤器:
values值在if判断是false的时候使用默认值
## views.py文件:
def dafault(request):
context = {
‘values’:“hello”
}
return render(request,‘default.html’,context=context)
default.html文件:
default_if_none过滤器:
只有在values值是none的时候才使用默认值。
first与last过滤器:
返回,列表,元祖,字符串的第一个或者最后一个元素。
first.html
views.py文件:
def first_view(request):
context = {
“values”:“hello”
}
return render(request,‘first.html’,context=context)
floatformat过滤器:
讲一个带有小数的数字,四舍五入,没有参数的话保留一位小数。有参数的话,参数是几就保留几位小数。
view.py文件
def floatformat(request):
context = {
“values”:34.4567
}
return render(request,‘floatformat.html’,context=context)
join过滤器:
将指定的字符串,列表,元祖,使用指定的字符分割
views.py文件:
def join(request):
context = {
“values”:[1,2,3,]
}
return render(request,‘join.html’,context=context)
join.html文件:
length过滤器:
获取一个字符串,列表,元祖,字典的长度
views.py文件:
def length_view(request):
context = {
“values”:[1,2,3,]
}
return render(request,‘length.html’,context=context)
length.html
lower,upper过滤器:
将字符串转换成小写,或大写
def lower_view(request):
context = {
“values”:“HEllo World”
}
return render(request,‘lower.html’,context=context)
lower.html文件:
random过滤器:
从列表,元祖,字典,中随机取出一个元素
views.py文件:
def random_view(request):
context = {
“values”:[1,2,3,4,5,]
}
return render(request,‘random.html’,context=context)
random.html文件:
safe过滤器:
观点一个字符串的自动转义。
views.py文件
def safe_view(request):
context = {
“values”:“”
}
return render(request,‘safe.html’,context=context)
safe.html文件:
slice过滤器:
类似于python中的切片操作。
def slice_view(request):
context = {
“values”:[1,2,3,4,5,]
}
return render(request,‘slice.html’,context=context)
slice.html文件
slice.html文件2 获取步长
striptags过滤器:
striptags是将字符串当中的HTML标签去掉
views.py文件:
def striptags(request):
context = {
“values”:“”
}
return render(request,‘stiptags.html’,context=context)
truncatechars过滤器:
保留一段字符串的前几位,…算1位
views.py文件:
def trencatechars(request):
context = {
“values”:“北京欢迎您。”
}
return render(request,‘truncatechars.html’,context=context)