Falsk框架(2)

转换器

int 接受整数
float 同int,但是接受浮点数
path 和默认的相似,但也接受斜线
转换器的本质是正则

自定义转换器

系统有哪些转换器

from werkzeug.routing import BaseConverter,IntegerConverter,FloatConverter,PathConverter

为什么要自定义转化器
步骤是什么
1、继承BaseConverter实现
2、通过url_map的converters注册转换器

app.url_map.converters['re'] = Myconverter

转换器高级用法的两个方法

to_pyhton 只要使了转换器, 一定被调用
to_url 只有在重定向了,并且路由上有参数的时候才会被调用

模板

变量,标签,注释,过滤器

过滤器本质就是函数
视图引用函数
from flask import render_template
变量使用jinjia2这个模块引擎来渲染模板
我们在后台模拟一些数据,返回给模板渲染,render_template函数第二个参数就是我们要返回的内容。

在模板中用模板语言解析出我们的数据,解析变量我们{{}},这种语法我们叫变量代码块:

注释

使用 {# #} 进行注释,注释的内容不会在html中被渲染出来。

{# {{ name }} #}

过滤器

过滤器本质就是函数
自定义过滤器 至少有一个参数 千万别忘记用app.jinjia_env.filters注册过滤器

app.jinja_env.filters['my'] = do_myfilter
长度过滤器:
 {{ name|length }}<br data-tomark-pass> 
默认过滤器,当后台没有返回sex的时候会执行:
 {{ sex|default('男') }}<br data-tomark-pass> 
 反转过滤器: 
 {{ name|reverse }}<br data-tomark-pass>

过滤器支持链式调用:

{{ "hello world" | reverse | upper }}

语句块操作:

{% filter upper %}
 'abc' 
 {% endfilter %}

常用过滤器:

禁用转义:{{ '<em>hello</em>' | safe }} 
删除标签:{{ '<em>hello</em>' | striptags }}
 首字母大写:{{ 'hello' | capitalize }}
  所有值小写:{{ 'HELLO' | lower }} 
  首字母大写:{{ 'hello world' | title }}
   字符串反转:{{ 'hello' | reverse }} 
   字符串截断:{{ 'hello world' | truncate(5) }} 
   获取列表长度:{{ [1,2,3,4,5,6] | length }} 
   列表求和:{{ [1,2,3,4,5,6] | sum }} 
   列表排序:{{ [6,2,3,1,5,4] | sort }}
   abs(value):返回一个数值的绝对值。示例:-1|abs
default(value,default_value,boolean=false):如果当前变量没有值,则会使用参数中的值来代替。示例:name|default(‘xiaotuo’)——如果name不存在,则会使用xiaotuo来替代。boolean=False默认是在只有这个变量为undefined的时候才会使用default中的值,如果想使用python的形式判断是否为false,则可以传递boolean=true。也可以使用or来替换。
escape(value)或e:转义字符,会将<、>等符号转义成HTML中的符号。显例:content|escape或content|e。
first(value):返回一个序列的第一个元素。示例:names|first
format(value,arags,*kwargs):格式化字符串。比如:{{ "%s" - "%s"|format('Hello?',"Foo!") }}将输出:Helloo? - Foo!
last(value):返回一个序列的最后一个元素。示例:names|last。
length(value):返回一个序列或者字典的长度。示例:names|length。
join(value,d=u”):将一个序列用d这个参数的值拼接成字符串。
safe(value):如果开启了全局转义,那么safe过滤器会将变量关掉转义。示例:content_html|safe。
int(value):将值转换为int类型。
float(value):将值转换为float类型。
lower(value):将字符串转换为小写。
upper(value):将字符串转换为小写。
replace(value,old,new): 替换将old替换为new的字符串。
truncate(value,length=255,killwords=False):截取length长度的字符串。
striptags(value):删除字符串中所有的HTML标签,如果出现多个空格,将替换成一个空格。
trim:截取字符串前面和后面的空白字符。
string(value):将变量转换成字符串。
wordcount(s):计算一个长字符串中单词的个数。


自定义过滤器:

# 自定义过滤器 
def handletime(time):
return time.strftime('%Y-%m-%d %H:%M')
注册过滤器
app.jinja_env.filters['handletime'] = handletime # 注册过滤器

自定义 模板中使用过滤器

自定义过滤器
 {{ time|handletime }}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值