轉(zhuǎn)換器:
? ? int? ?接受整數(shù)
? ? float? 同int,但是接受浮點(diǎn)數(shù)
? ? path? 和默認(rèn)的相似,匹配也接受斜線(\)
? ? 12.22
? ? ? \d+.\d+
? ? ? ?regex = r"\d+\.\d+" 轉(zhuǎn)義
? ?轉(zhuǎn)換器的本質(zhì)是正則
? ? 為什么自定義轉(zhuǎn)換器
? ? ? ? 答:因?yàn)闊o法使用系統(tǒng)自帶的轉(zhuǎn)換器匹配,才自定義轉(zhuǎn)換器
? ? 步驟:
? ? ? ? 1:繼承BeseConverter實(shí)現(xiàn)
? ? ? ? ?2:通過url_map的converters注冊(cè)轉(zhuǎn)換器
? ? ? ? to_python 一定被調(diào)用
? ? ? ? to_url 只有重定向的時(shí)候被調(diào)用
? ? ? ? ?執(zhí)行過程:參數(shù)先傳給to_url然后to_url中value傳給重定向的那個(gè)函數(shù)的正則,開始匹配如果匹配成功,返回給to_python然后value返回給重定向函數(shù)中的參數(shù)
模板:變量? 標(biāo)簽 注釋? 過濾器
{#自定義過濾器#}
{{ name|wc }}
{{ name|wc1('我愛的打算') }}
{{name|length}}{#? ? 長(zhǎng)度過濾器-->#}
{# 字符串操作 #}
{{ coutent|safe }}<br>{# 禁用轉(zhuǎn)義 #}
{{ 'hello'|capitalize }}{# 首字母大寫 #}
{{ 'HELLO' | lower }}{# 全部變?yōu)樾?#}
<p>{{ 'hello' | upper }}</p>{# 把值變?yōu)榇髮?#}
<p>{{ 'hello' | title }}</p>{# title:把值中的每個(gè)單詞的首字母都轉(zhuǎn)成大寫? #}
<p>{{ 'olleh' | reverse }}</p>{# reverse:字符串反轉(zhuǎn)? #}
<p>{{ '%s is %d' | format('張三',17) }}</p>{# format:格式化輸出? #}
<p>{{ '<em>hello</em>' | striptags }}</p>{# striptags:渲染之前把值中所有的HTML標(biāo)簽都刪掉 #}
<p>{{ 'hello every one' | truncate(10)}}</p>{# truncate: 字符串截?cái)? ? ? ? ? ? #}
{#字符串操作結(jié)束#}
{#列表操作#}
<p>{{ [1,2,3,4,5,6] | first }}</p>{# first:取第一個(gè)元素? #}
<p>{{ [1,2,3,4,5,6] | last }}</p>{# last:取最后一個(gè)元素? ? ? ? #}
<p>{{ [1,2,3,4,5,6] | length }}</p>{# length:獲取列表長(zhǎng)度? ? ? ? #}
<p>{{ [1,2,3,4,5,6] | sum }}</p>{# sum:列表求和? ? ? ? ? #}
<p>{{ [6,2,3,1,5,4] | sort }}</p>{# sort:列表排序? ? ? ? ? ? #}
過濾器的本質(zhì)就是函數(shù)
? 自定義過濾器,至少有一個(gè)參數(shù),要用app.jinja_env.filters注冊(cè)過濾器
? ??