正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼
在 web 開發(fā)中,可能會出現(xiàn)限制用戶訪問規(guī)則的場景,那么這個時候就需要用到正則匹配,根據(jù)自己的規(guī)則去限定請求參數(shù)再進(jìn)行訪問
具體實(shí)現(xiàn)步驟為:
- 導(dǎo)入轉(zhuǎn)換器基類:在 Flask 中,所有的路由的匹配規(guī)則都是使用轉(zhuǎn)換器對象進(jìn)行記錄
- 自定義轉(zhuǎn)換器:自定義類繼承于轉(zhuǎn)換器基類
- 添加轉(zhuǎn)換器到默認(rèn)的轉(zhuǎn)換器字典中
- 使用自定義轉(zhuǎn)換器實(shí)現(xiàn)自定義匹配規(guī)則
代碼實(shí)現(xiàn)
導(dǎo)入轉(zhuǎn)換器基類
from werkzeug.routing import BaseConverter
自定義轉(zhuǎn)換器
# 自定義正則轉(zhuǎn)換器
class RegexConverter(BaseConverter):
def __init__(self, url_map, *args):
super(RegexConverter, self).__init__(url_map)
# 將接受的第1個參數(shù)當(dāng)作匹配規(guī)則進(jìn)行保存
self.regex = args[0]
添加轉(zhuǎn)換器到默認(rèn)的轉(zhuǎn)換器字典中,并指定轉(zhuǎn)換器使用時名字為: re
app = Flask(__name__) # 將自定義轉(zhuǎn)換器添加到轉(zhuǎn)換器字典中,并指定轉(zhuǎn)換器使用時名字為: re app.url_map.converters['re'] = RegexConverter
使用轉(zhuǎn)換器去實(shí)現(xiàn)自定義匹配規(guī)則
當(dāng)前此處定義的規(guī)則是:3位數(shù)字
@app.route('/user/<re("[0-9]{3}"):user_id>')
def user_info(user_id):
return "user_id 為 %s" % user_id
運(yùn)行測試:http://127.0.0.1:5000/user/123 ,如果訪問的url不符合規(guī)則,會提示找不到頁面
系統(tǒng)自帶轉(zhuǎn)換器
DEFAULT_CONVERTERS = {
'default': UnicodeConverter,
'string': UnicodeConverter,
'any': AnyConverter,
'path': PathConverter,
'int': IntegerConverter,
'float': FloatConverter,
'uuid': UUIDConverter,
}
系統(tǒng)自帶的轉(zhuǎn)換器具體使用方式在每種轉(zhuǎn)換器的注釋代碼中有寫,要注意每種轉(zhuǎn)換器初始化的參數(shù)。
總結(jié)
以上所述是小編給大家介紹的正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
js正則表達(dá)式中的單行模式與多行模式實(shí)例分析
這篇文章主要介紹了js正則表達(dá)式中的單行模式與多行模式,實(shí)例分析了js正則表達(dá)式中實(shí)現(xiàn)單行模式與多行模式的技巧,需要的朋友可以參考下2015-01-01
Further Study of Rugular Expresions
regular expressions(正則表達(dá)式,以下用re稱呼)對小弟來說一直都是神密的地帶,看到一些網(wǎng)絡(luò)上的大大,簡單用re就決解了 某些文字的問題2008-09-09
基于正則表達(dá)式實(shí)現(xiàn)UL下LI的樣式替換功能
這篇文章主要介紹了基于正則表達(dá)式實(shí)現(xiàn)UL下LI的樣式替換功能,涉及javascript使用正則表達(dá)式進(jìn)行頁面元素屬性動態(tài)操作的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-05-05
EditPlus中的正則表達(dá)式 實(shí)戰(zhàn)(1)
本文通過實(shí)例代碼較詳細(xì)的給大家介紹了EditPlus中的正則表達(dá)式,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2016-12-12
javascript正則表達(dá)式學(xué)習(xí)之位置匹配
正則表達(dá)式是匹配模式,要么是匹配字符,要么匹配位置。在開發(fā)中用到位置匹配的機(jī)會很少,但是小編也給大家介紹下關(guān)于正則表達(dá)式位置匹配的相關(guān)知識,感興趣的朋友跟隨小編一起看看吧2019-04-04
Javascript lastIndex 正則表達(dá)式的一個疑惑
Javascript lastIndex 正則表達(dá)式2009-01-01

