DTL与filter过滤器

为什么使用过滤器:
因为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

Title {​{ greet }}

使用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文件:

add过滤器 {​{ values1|add:values2 }}

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文件:

cut过滤器 {​{ "hello world"|cut:' ' }}

date过滤器:

date.html文件:

date过滤器 {​{ today|date:'Y-m-d H:i:s' }}

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过滤器 {​{ values|default:"我是默认值" }}

default_if_none过滤器:
只有在values值是none的时候才使用默认值。

default过滤器 {​{ values|default_if_none:"我是默认值" }}

first与last过滤器:

返回,列表,元祖,字符串的第一个或者最后一个元素。

first.html

first过滤器 {​{ values|first }}

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)

floatformat {​{ values|floatformat:2}} -----没有参数的话就保留1位小数

join过滤器:

将指定的字符串,列表,元祖,使用指定的字符分割
views.py文件:
def join(request):
context = {
“values”:[1,2,3,]
}
return render(request,‘join.html’,context=context)

join.html文件:

join过滤器 {​{ values|join:'/' }}

length过滤器:

获取一个字符串,列表,元祖,字典的长度
views.py文件:
def length_view(request):
context = {
“values”:[1,2,3,]
}
return render(request,‘length.html’,context=context)

length.html

length过滤器 {​{ values|length }}

lower,upper过滤器:

将字符串转换成小写,或大写
def lower_view(request):
context = {
“values”:“HEllo World”
}
return render(request,‘lower.html’,context=context)

lower.html文件:

Title {​{ values|lower }}

random过滤器:

从列表,元祖,字典,中随机取出一个元素
views.py文件:
def random_view(request):
context = {
“values”:[1,2,3,4,5,]
}
return render(request,‘random.html’,context=context)

random.html文件:

Title {​{ values|random }}

safe过滤器:

观点一个字符串的自动转义。

views.py文件
def safe_view(request):
context = {
“values”:“”
}
return render(request,‘safe.html’,context=context)

safe.html文件:

Title {​{ values|safe }}

slice过滤器:

类似于python中的切片操作。
def slice_view(request):
context = {
“values”:[1,2,3,4,5,]
}
return render(request,‘slice.html’,context=context)
slice.html文件

Title {​{ values|slice:'2:4' }}

slice.html文件2 获取步长

Title {​{ values|slice:'0::2' }}

striptags过滤器:

striptags是将字符串当中的HTML标签去掉

Title {​{ values|striptags }}

views.py文件:
def striptags(request):
context = {
“values”:“”
}
return render(request,‘stiptags.html’,context=context)

truncatechars过滤器:
保留一段字符串的前几位,…算1位

Title {​{ values|truncatechars:2 }}

views.py文件:
def trencatechars(request):
context = {
“values”:“北京欢迎您。”
}
return render(request,‘truncatechars.html’,context=context)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值