Flask正則匹配路由

2021-09-24 09:21:11 字數 1030 閱讀 3629

在 web 開發中,可能會出現限制使用者訪問規則的場景,那麼這個時候就需要用到正則匹配,根據自己的規則去限定請求引數再進行訪問

具體實現步驟為:

from werkzeug.routing import baseconverter
# 自定義正則轉換器

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

# 將接受的第1個引數當作匹配規則進行儲存

self.regex = args[0]

# 將自定義轉換器新增到轉換器字典中,並指定轉換器使用時名字為: re

def user_info(user_id):

return "user_id 為 %s" % user_id

執行測試: ,如果訪問的url不符合規則,會提示找不到頁面

繼承於自定義轉換器之後,還可以實現 to_python 和 to_url 這兩個函式去對匹配引數做進一步處理:

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

# 將接受的第1個引數當作匹配規則進行儲存

self.regex = args[0]

def to_python(self, value):

return int(value)

執行測試,在檢視函式中可以檢視引數的型別,由之前預設的 str 已變成 int 型別的值

default_converters =

Flask以正則的方式匹配動態路由

在flask預設的路由匹配規則中,乙個動態的路由可以匹配int,float,path三種型別 例如 匹配path的情況 defuser username 匹配int的情況 defuser user id 匹配path的情況 defuser user weighht 而在某些特定的需求下,需要動態匹配...

正則匹配路由

在 web 開發中,可能會出現限制使用者訪問規則的場景,那麼這個時候就需要用到正則匹配,根據自己的規則去限定請求引數再進行訪問 具體實現步驟為 from werkzeug.routing import baseconverter 自定義正則轉換器 class regexconverter basec...

Flask自定義轉換器,實現路由匹配正規表示式引數

1 路由傳遞的引數預設當做string處理2 這裡指定int,尖括號中冒號後面的內容是動態的 3 user 5def hello itcast id 6return hello itcast format id 1 匯入basseconverter類,作為所有自定義轉換器的父類 2from werk...