Django中提供了很多的过滤器和标签,具体可见django官网,
例如:upper(转化为大写字母)
lower(转化为小写字母)
autoescape(自动转义)
block(模板继承)
csrf_token(防止跨站伪造请求)
extends(模板继承)
filter(过滤器) 等……
内置的过滤器虽然好用,但是我们的需求更加多样,在内置过滤器不能满足我们的需求的时候
我们可以自己来写一个过滤器
1.新建一个项目,建立一个app, 配置templates 添加html文件,配置static,添加需要的静态文件
配置views.py urls.py ,然后启动服务器,保证项目的正常建立与运行,这里不多赘述
2.在appxia创建templatetags文件夹 在文件夹内添加__init__.py 表明我们这是一个可引用的包
再创建一个myfilter.py 声明我们的自定义过滤器,代码如下
from django.template import Library
register=Library()
@register.filter
def add(value):
return value+'that is nothing'
@register.filter #注册过滤器
def change_length(value):
if len(value)>5:
return value[0:5]+'...'
return value
@register.simple_tag #注册标签
def mytag(value1,value2):
if value1=='a':
return '<a href="https://www.baidu.com">百度</a>'
if value2=='b':
return '<h1>一下</h1>'
import datetime
@register.simple_tag
def get_current_time():
time=datetime.datetime.now()
time=time.strftime('%Y-%m-%d %h:%M:%s')
return '<h1>{}</h1>'.format(time)
过滤器的使用
输入界面