Django自定义过滤器

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 '百度'
    if value2=='b':
        return '

一下

' import datetime @register.simple_tag def get_current_time(): time=datetime.datetime.now() time=time.strftime('%Y-%m-%d %h:%M:%s') return '

{}

'.format(time)

过滤器的使用

Django自定义过滤器_第1张图片

输入界面

Django自定义过滤器_第2张图片

你可能感兴趣的:(Django自定义过滤器)