前情提要:

  最近工作中用到django 中的 

    自定制过滤器的内容,

再此 复习一波过滤器和自定制 过滤器的内容

自定制过滤器

 

1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.

2、在app中创建templatetags模块(模块名只能是templatetags)

3、创建任意 .py 文件,如:my_tags.py

django 自定制过滤器代码

from django import template
from django.utils.safestring import mark_safe register = template.Library() # register的名字是固定的,不可改变 @register.filter
def filter_multi(v1): msg= v1.pop()
return msg @register.simple_tag
def simple_tag_multi(v1, v2):
return v1 * v2 @register.simple_tag
def my_input(id,):
result = "<input type='text' id='%s' />" % (id)
return mark_safe(result)

前段代码

num 对应后端传过来的数据内容

视图代码

致此  自定制列内容 的所有内容都完成了

现在描述一下 系统自带的过滤器内容

Django过滤器

add过滤器:将字符串和字母、整数链接(若为字符串会转化为整数形式)
注:若是一个字母字符串和一个数字进行链接会输出空
    {{ 1|add:2 }}返回一个3
    {{ "2"|add:3 }}返回一个5
    {{ "a"|add:3 }}#返回一个空

cut过滤器 移除指定的字符串注:后面的参数必须是字符串的形式
    {{ "hello world"|cut:" " }}#移除了hello world 里的所有空格 结果为 helloworld
    {{ "hello world"|cut:"e" }}#结果为hllo world 移除了e
    {{ 123456|cut:1 }}#会报错 是因为参数不是字符串的形式 不管前面所要移除的对象是否为整数 参数必须是字符串的形式

data过滤器--过滤时间的过滤器(要用到datetime模块)
    {{ time|date:"Y-m-g" }}#后面的参数必须要加引号 会显示出时间年月时分

first过滤器和last过滤器--输出列表/元组/字符串中的第一个 /最后一个值(不能传参数)
且元祖列表都要提前定义(只输入变量名)
#name:["ll","ww","ee"]
    {{ name|first }}#输出li
    {{ name|last }}#输出ee
    {{ "15784"|first }}#字符串 输出1

floatformat过滤器--将浮点数保留小数 不传如参数就是默认保留一位(只看小数点后两位)
且正数和负数方式一样
    {{ 1.41|floatformat }}#输出1.4
    {{ 1.545|floatformat }}#输出1.5(只看小数点后两位等同于1.54)
    {{ -1.05|floatformat }}#输出-1.1
    {{ 1.247|floatformat:2 }}#输出1.25
join过滤器 在中间加一些特殊符号 类似于python的join(可以在列表,元祖操作)
    {{ "hello"|join:"*" }}#输出h*e*l*l*o
    {{ name|join:"-" }}

length过滤器 获取字符串、元祖、列表的长度(没有参数)
    {{ "1515"|length }}#输出4

upper/lower过滤器 将字母改成大/小写(没有参数)
    {{ "woaini"|upper }}#输出WOAINI
    {{ "DEFRT"|lower }}#输出defrt

random过滤器 随机抽取列表、元祖、字符串中的随机一个数,类似于python中的random模块
    {{ name|random }}#随机在这个里面输出一个值

safe过滤器 关闭字符串自动转义 就是传入的值里面没有任何特殊字符就会原样输出 若有就会转义输出(列入<br>),且python中的特殊字符无法识别
#"style": "abcdef<br>adasds"
    {{ style|safe }}#会输出abcdef
                            adasds
#"style": "woaini"
    {{ style|safe }}#会输出woaini(原样输出)

slice过滤器 类似于python的slice 切片(对字符串、元祖、列表操作)
    {{ "woaini"|slice:"2" }}#输出wo(默认是从第0位开始到第2位结束,且不包含第二位)
    {{ "woshini"|slice:"2:5" }}#输出shi

striptags过滤器 删除字符串中的html标签(前面的参数){{ value|striptags }} 中的value中的html标签(没有参数)
    {{ style|striptags }}#输出一个不带有html标签的(style里有h1标签就会删除原样输出)

truncatechars过滤器 如果给定的字符串长度超过了过滤器指定的长度。那么就会进行切割,并且会拼接三个点来作为省略号
    {{ "woaini"|truncatechars:5 }}#输出wo...本应输出woain但要用三个省略号作为末尾,所以就要输出wo...
    {{ "woaini"|truncatechars:6 }}#输出woaini 字符串长度和过滤器指定长度相同 原样输出
注意:若value中带有html标签 不会自动转义 会自主输出
#"style": "<h1>abcdefadasds</h1>"
    {{ style|truncatechars:6 }}#输出<h1..

truncatechars_html过滤器 和truncatechars过滤器类似只是不会切割html标签(输出的结果类似)
#"style": "<h1>abcdefadasds</h1>"

    {{ style|truncatechars_html:5}}#输出<h1>ab...</h1>

default过滤器: 使用方式'{{ value | default('默认值')}}'。如果Value 这个‘key’不存在,那么就会使用‘default’过滤器提供的默认值。
               如果你想使用类似于‘python’中判断某个值是否为false(例如:none,空字符串、空列表、空字典),
               那么就必须传递另外一个参数‘{{value | default ('默认值',boolean = True)}}’

    {{ "nlll"|default:"noneddd" }}#输出nlll 后面的值是False 就会输出value上写的值
default_if_none过滤器 只有值是none是才会用default_if_none提供的默认值 和default的关系是default包含defaul_if_none过滤器
{{ "nonon"|default_if_none:"1" }}#输出的值为nonon

django -过滤器的使用的更多相关文章

  1. Django过滤器列表

    Django 模板过滤器也是我们在以后基于 Django 网站开发过程中会经常遇到的,如显示格式的转换.判断处理等.以下是 Django 过滤器列表,希望对为大家的开发带来一些方便. 一.形式:小写 ...

  2. django 过滤器、日日期格式化参数

    转载:http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格 ...

  3. django 过滤器 、日期格式化参数

    http://blog.csdn.net/xyp84/article/details/7945094 django1.4 html页面从数据库中读出DateTimeField字段时,显示的时间格式和数 ...

  4. Django 过滤器 实例

    实例1 safe让Html标签以及一些特殊符号(如<)生效,下面以例子说明: # value = '<b>CPT</b>' # 那么输出的时候,CPT就是加粗的,如果不加 ...

  5. Django 过滤器

    过滤器 描述 示例 upper 以大写方式输出 {{ user.name | upper }} add 给value加上一个数值 {{ user.age | add:"5" }} ...

  6. 【转载】django 过滤器 、日期格式化参数

    过滤器相关: 一.形式:小写{{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 标签{{ my_text|escape|linebreaks }} 三.过滤器的参数显示 ...

  7. django 过滤器,标签

    过滤器: <p>{{ date|date:"Y-m-d" }}</p> {#2018-05-28,date是当前时间#} <p>{{ l|len ...

  8. falsk 与 django 过滤器的使用与区别

    1,flask中内置的过滤器模板中常用方法: {#过滤器调用方式{{变量|过滤器名称}} #} <!-- safe过滤器,可以禁用转义 --> {{'<strong>hello ...

  9. django过滤器,日期格式化

    过滤器相关: 一.形式:小写{{ name | lower }} 二.串联:先转义文本到HTML,再转换每行到 标签{{ my_text|escape|linebreaks }} 三.过滤器的参数显示 ...

随机推荐

  1. 解决 pycharm [Errno 11001] getaddrinfo failed 错误提示!

    我看网上很多问题对这个问题的解决方法也是一只半解的,可能产生问题的原因不一样吧,今天我说下我的经验 解决办法: 原因就是你的本地dns解析的host文件,里面的的解析地址被注释了! 打开本地的hous ...

  2. 无服务架构在IOT的应用场景——使用函数工作流处理DIS数据

    在物联网领域,复杂性往往并非在于传感器,真正的复杂性在于各种传感器产生的大量数据,以及对这些数据的处理,所以开发者不得不花费大量的时间去构建和维护后端服务器来处理这样一个庞大的数据流.而在今天这个敏捷 ...

  3. 方法引用(method reference)

    目录 方法引用(method reference) 1. 含义 2. 分类 3. 总结 方法引用(method reference) 1. 含义 方法引用实际上是 Lambda 表达式的一种语法糖. ...

  4. Unity塔防游戏的创建

    看了下塔防游戏的教程,比我想像的还简单一些,有些收获: (1)敌人的移动路径,其时比较简单,用了N个Empty GameObject作为路径点,然后做一个总的Empty GameObject 作为父级 ...

  5. CCF 2017-09-2 公共钥匙盒

    CCF 2017-09-2 公共钥匙盒 题目 问题描述 有一个学校的老师共用N个教室,按照规定,所有的钥匙都必须放在公共钥匙盒里,老师不能带钥匙回家.每次老师上课前,都从公共钥匙盒里找到自己上课的教室 ...

  6. 用户注册&单点登录

    package com.tttttt.portal.controller; import java.util.HashMap; import java.util.Map; import javax.s ...

  7. vscode 基本知识以及如何配置 C++ 环境

    参考: 在用VSCode? 看完这篇文章, 开发效率翻倍!最后一条厉害了~ Visual Studio Code(VS code)你们都在用吗?或许你们需要看一下这篇博文 按下 ctrl+K,再按下 ...

  8. APP漏洞之WebView File域同源策略绕过漏洞

    i春秋作家:MAX丶 基本知识Android架构 Kernel内核层 漏洞危害极大,通用性强 驱动由于多而杂,也可能存在不少漏洞 Libaries系统运行库层 系统中间件形式提供的运行库 包括libc ...

  9. nginx的so_keepalive和timeout相关小计

    KeepAlive 这里的keepalive是TCP的探活机制: [root@ ~]# sysctl -a |grep tcp_keepalive net.ipv4.tcp_keepalive_tim ...

  10. DoD与TCP/IP

    DoD与TCP/IP都是协议栈. 什么是协议栈? 就是一套软件,默认安装完Windows就有,可以卸载再安装.把他卸载了,你就不能上网. 数据的封装以及解封装有网卡以及绑定的TCP/IP协议栈完成 A ...