包含萬用字元的路由稱為動態路由,動態路由可以同時匹配多個url。在bottle中乙個簡單的萬用字元由乙個用尖括號括起來的名稱組成(如)直到接受到下乙個 / 為止。例如路由 /hello/支援接受 /hello/bob,/hello/jack 等請求,但當使用 /hello、 /hello/ 和 /hello/bob/index 等請求時則會報404錯誤。
使用萬用字元
每個萬用字元都將url的覆蓋部分作為關鍵字引數傳遞給請求函式。函式中引數名要和萬用字元名稱一致。
@route(
'/')
@route(
'/hello/'
)def
greet
(name)
:return
'hello '
+ name +
' how are you?'
可以包含多個萬用字元,函式引數要和萬用字元一致
@route(
'//'
)def
hello
(action, name):.
..
過濾器
可以使用萬用字元過濾器來對萬用字元進行過濾,形式如下
filter
>
其中filter的值可以是
型別描述
int匹配(帶符號的)數字。
float
和int相似可以匹配小數。
path
以非貪婪的方式匹配所有字元,包括斜槓字元,並可用於匹配多個路徑段。
re[:exp]
是否能夠在配置欄位中指定乙個自定義正規表示式。不修改匹配的值。正規表示式寫在exp中。
一些典型的過濾器例子
@route(
'/object/'
)def
callback(id
):assert
isinstance(id
,int
)@route(
'/show/'
)def
callback
(name)
:assert name.isalpha(
)@route(
'/static/'
)def
callback
(path)
:return static_file(path,..
.)
自定義萬用字元過濾器
可以將自己的過濾器新增到路由器。您需要乙個返回三個元素的函式:正規表示式字串、將url片段轉換為python值的可呼叫函式和執行相反操作的可呼叫函式。呼叫filter函式時,配置字串是唯一的引數。
例如:)
deflist_filter
(config)
:''' 匹配用逗號分隔的數字列表 '''
delimiter = config or
',' regexp = r'\d+(%s\d)*'
% re.escape(delimiter)
defto_python
(match)
:return
map(
int, match.split(delimiter)
)def
to_url
(numbers)
:return delimiter.join(
map(
str, numbers)
)return regexp, to_python, to_url
'list'
, list_filter)
# 使用自定義的過濾器
'/follow/'
)def
follow_users
(ids)
:for
idin ids:..
.
動態路由配置
1.需要的環境packettracer6 思科 2.對路由器配置動態路由實現不同網段之間的通訊,網路拓撲結構如下 3.按要求搭建上面的網路拓撲結構 使用滑鼠拖動將所需要的結構放入到空白處 4.配置好各台pc機的ip位址以及閘道器位址 ip位址以及各閘道器位址註明在上面 閘道器 其他pc機的配置一樣 ...
動態路由配置
動態路由 網路中的路由器之間相互通訊,傳遞路由資訊利用收到的路由資訊更新和維護路由表的過程 基於某種路由協議實現的 特點 減少管理任務,但是占用網路頻寬 動態路由協議的作用 向其他路由器傳遞路由資訊 接收其他路由器的路由資訊 根據收到的路由資訊計算出到每個目的網路的最優路徑,並由此生成路由表 根據網...
動態路由配置
實驗目的 掌握ospf協議的相關配置 1.配置pc機ip位址,以pc0為例 2.在二層交換機建立vlan,並劃入對應埠,再配置trunk,以switch0為例。3.三層交換機開啟路由功能,劃分vlan 設定trunk 配置虛擬介面。switch0與switch1配置基本相同,vlan和埠ip需要注意...