在 web 開發中,可能會出現限制使用者訪問規則的場景,那麼這個時候就需要用到正則匹配,根據自己的規則去限定請求引數再進行訪問
具體實現步驟為:
from werkzeug.routing import baseconverter
# 將自定義轉換器新增到轉換器字典中,並指定轉換器使用時名字為: re# 自定義正則轉換器
class regexconverter(baseconverter):
def __init__(self, url_map, *args):
super(regexconverter, self).__init__(url_map)
# 將接受的第1個引數當作匹配規則進行儲存
self.regex = args[0]
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...