3 Bottle配置動態路由

2021-09-20 21:47:04 字數 1981 閱讀 6628

包含萬用字元的路由稱為動態路由,動態路由可以同時匹配多個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需要注意...