Falsk 与 Django 过滤器的使用与区别详解
1,flask中内置的过滤器模板中常用方法:
{#过滤器调用方式{{变量|过滤器名称}}#} {{'hello'|safe}}
大写转小写 {{'HELLO'|lower}} 小写转大写 {{'hello'|upper}}
字符串反转 {{'abc'|reverse}} 首字母大写 {{'james'|capitalize}} 过滤HTML标签 {{'apple'|striptags}}
只显示list首个元素 {{[100,95,55,81]|first}} 只显示list最后一个元素 {{[100,95,55,81]|last}} 显示list的长度 {{[100,95,55,81]|length}} list里所有元素求和 {{[100,95,55,81]|sum}} list进行排序 {{[100,95,55,81]|sort}} format:格式化输出 {{'%sis%d'|format('name',17)}}
对语句块进行过滤 {%filterupper%} qwedr,tyuio,piuytre,rtyuiuyt afaifeoifafa,afaf {%endfilter%}
链式调用过滤器 {{'abc'|reverse|upper}}
自定义过滤器 {{100|my_filter}}
自定义过滤器(后端视图函数)
@app.template_filter("my_filter") #自定义过滤器 defmy_filter(val): return'$'+str(val)
2,django中内置的过滤器模板中常用方法:
{#通过内置过滤器实现加减法#} {{test_int|add:10}} {{list.0}}
{%foriinlist%} {{i}} {#打印索引从1开始的计数器#} {{forloop.counter}} {#打印数组索性#} {{forloop.counter0}} {#倒序索引#} {{forloop.revcounter}}
{%endfor%}
{%foriindict%} {#取首位和末尾firstlast#} 姓名:{{i.name|first}}年龄:{{i.age}} {%endfor%}
{#大写小写#} {{'jack'|upper|lower}} {#返回长度#} {{'123456'|length}} {#截断操作#} {{content|truncatechars:10}} 截断单词{{content|truncatewords:2}} {#格式化日期#} {{dt|date:'Y-m-dH:i:s'}}
自定义过滤器(后端视图函数)
首先在工程文件的同名配置文件下创建templatetags文件夹,建立myfiler.py用来自定义过滤器
例:
fromdjangoimporttemplate #注册过滤器对象 register=template.Library() #自定义过滤器 #通过装饰器的方式来注册自定义过滤器 @register.filter defmy_str(val): return"$"+str(val) #定义一个双参数过滤器 @register.filter defmy_str_two(val,p1): returnval+p1 #定义一个多参数的过滤器 #注册过滤器的时候,需要注册SIMPLE_TAG @register.simple_tag defmy_str_many(val,p1,p2): returnval+p1+p2 #定义一个取余数的过滤器 @register.filter defget_line(val): returnint(val)%2
在templates文件夹中模板文件中导入
{#导入过滤器文件#}
{%loadmyfilter%}
{#导入过滤器文件#} {%loadmy_filter%} {{test_str|my_str}} {#两个参数进行调用#} {{'你好'|my_str_two:"不好"}} {#调用多参数的过滤器#} {%my_str_many'你好''不好''啊'%} {{test_list|length}}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。