正則表達式匹配路由的實現(xiàn)代碼
在 web 開發(fā)中,可能會出現(xiàn)限制用戶訪問規(guī)則的場景,那么這個時候就需要用到正則匹配,根據自己的規(guī)則去限定請求參數(shù)再進行訪問
具體實現(xiàn)步驟為:
- 導入轉換器基類:在 Flask 中,所有的路由的匹配規(guī)則都是使用轉換器對象進行記錄
- 自定義轉換器:自定義類繼承于轉換器基類
- 添加轉換器到默認的轉換器字典中
- 使用自定義轉換器實現(xiàn)自定義匹配規(guī)則
代碼實現(xiàn)
導入轉換器基類
from werkzeug.routing import BaseConverter
自定義轉換器
# 自定義正則轉換器 class RegexConverter(BaseConverter): def __init__(self, url_map, *args): super(RegexConverter, self).__init__(url_map) # 將接受的第1個參數(shù)當作匹配規(guī)則進行保存 self.regex = args[0]
添加轉換器到默認的轉換器字典中,并指定轉換器使用時名字為: re
app = Flask(__name__) # 將自定義轉換器添加到轉換器字典中,并指定轉換器使用時名字為: re app.url_map.converters['re'] = RegexConverter
使用轉換器去實現(xiàn)自定義匹配規(guī)則
當前此處定義的規(guī)則是:3位數(shù)字
@app.route('/user/<re("[0-9]{3}"):user_id>') def user_info(user_id): return "user_id 為 %s" % user_id
運行測試:http://127.0.0.1:5000/user/123 ,如果訪問的url不符合規(guī)則,會提示找不到頁面
系統(tǒng)自帶轉換器
DEFAULT_CONVERTERS = { 'default': UnicodeConverter, 'string': UnicodeConverter, 'any': AnyConverter, 'path': PathConverter, 'int': IntegerConverter, 'float': FloatConverter, 'uuid': UUIDConverter, }
系統(tǒng)自帶的轉換器具體使用方式在每種轉換器的注釋代碼中有寫,要注意每種轉換器初始化的參數(shù)。
總結
以上所述是小編給大家介紹的正則表達式匹配路由的實現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對我們網站的支持!
您可能感興趣的文章
- 01-11正則表達式實現(xiàn)添加、刪除、替換三種功能
- 01-11python 用正則表達式篩選文本信息的實例
- 01-11正則表達式之匹配數(shù)字范圍
- 01-11python爬蟲正則表達式之處理換行符
- 01-11正則表達式截取身份證號碼加密的方法
- 01-11js正則表達式 匹配兩個特定字符間的內容示例
- 01-11MySQL使用正則表達式進行查詢操作經典實例總結
- 01-11python正則表達式之對號入座篇
- 01-11詳解正則表達式實現(xiàn)二代身份證號碼驗證
- 01-11Python爬蟲之正則表達式基本用法實例分析


閱讀排行
本欄相關
- 01-11正則表達式實現(xiàn)添加、刪除、替換三
- 01-11正則表達式之匹配數(shù)字范圍
- 01-11python 用正則表達式篩選文本信息的實
- 01-11正則表達式匹配路由的實現(xiàn)代碼
- 01-11python爬蟲正則表達式之處理換行符
- 01-11js正則表達式 匹配兩個特定字符間的
- 01-11正則表達式截取身份證號碼加密的方
- 01-11python正則表達式之對號入座篇
- 01-11MySQL使用正則表達式進行查詢操作經典
- 01-11詳解正則表達式實現(xiàn)二代身份證號碼
隨機閱讀
- 01-10使用C語言求解撲克牌的順子及n個骰子
- 01-10delphi制作wav文件的方法
- 01-10SublimeText編譯C開發(fā)環(huán)境設置
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 08-05織夢dedecms什么時候用欄目交叉功能?
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 01-11ajax實現(xiàn)頁面的局部加載
- 01-10C#中split用法實例總結