转换器:
int 接受整数
float 同int,但是接受浮点数
path 和默认的相似,匹配也接受斜线(\)
12.22
\d+.\d+
regex = r"\d+\.\d+" 转义
转换器的本质是正则
为什么自定义转换器
答:因为无法使用系统自带的转换器匹配,才自定义转换器
步骤:
1:继承BeseConverter实现
2:通过url_map的converters注册转换器
to_python 一定被调用
to_url 只有重定向的时候被调用
执行过程:参数先传给to_url然后to_url中value传给重定向的那个函数的正则,开始匹配如果匹配成功,返回给to_python然后value返回给重定向函数中的参数
模板:变量 标签 注释 过滤器
{#自定义过滤器#}
{{ name|wc }}
{{ name|wc1('我爱的打算') }}
{{name|length}}{# 长度过滤器-->#}
{# 字符串操作 #}
{{ coutent|safe }}
{# 禁用转义 #}
{{ 'hello'|capitalize }}{# 首字母大写 #}
{{ 'HELLO' | lower }}{# 全部变为小写 #}
{{ 'hello' | upper }}
{# 把值变为大写 #}{{ 'hello' | title }}
{# title:把值中的每个单词的首字母都转成大写 #}{{ 'olleh' | reverse }}
{# reverse:字符串反转 #}{{ '%s is %d' | format('张三',17) }}
{# format:格式化输出 #}{{ 'hello' | striptags }}
{# striptags:渲染之前把值中所有的HTML标签都删掉 #}{{ 'hello every one' | truncate(10)}}
{# truncate: 字符串截断 #}{#字符串操作结束#}
{#列表操作#}
{{ [1,2,3,4,5,6] | first }}
{# first:取第一个元素 #}{{ [1,2,3,4,5,6] | last }}
{# last:取最后一个元素 #}{{ [1,2,3,4,5,6] | length }}
{# length:获取列表长度 #}{{ [1,2,3,4,5,6] | sum }}
{# sum:列表求和 #}{{ [6,2,3,1,5,4] | sort }}
{# sort:列表排序 #}过滤器的本质就是函数
自定义过滤器,至少有一个参数,要用app.jinja_env.filters注册过滤器