濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > 正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼

正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼

熱門(mén)標(biāo)簽:甘肅醫(yī)療外呼系統(tǒng)排名 呼叫系統(tǒng)外呼只能兩次 外呼系統(tǒng)無(wú)呼出路由是什么原因 400電話辦理電話辦理 地圖標(biāo)注教學(xué)點(diǎn) 梅縣地圖標(biāo)注 貴港公司如何申請(qǐng)400電話 ai電話機(jī)器人搭建 西藏智能外呼系統(tǒng)代理商

在 web 開(kāi)發(fā)中,可能會(huì)出現(xiàn)限制用戶訪問(wèn)規(guī)則的場(chǎng)景,那么這個(gè)時(shí)候就需要用到正則匹配,根據(jù)自己的規(guī)則去限定請(qǐng)求參數(shù)再進(jìn)行訪問(wèn)

具體實(shí)現(xiàn)步驟為:

  • 導(dǎo)入轉(zhuǎn)換器基類(lèi):在 Flask 中,所有的路由的匹配規(guī)則都是使用轉(zhuǎn)換器對(duì)象進(jìn)行記錄
  • 自定義轉(zhuǎn)換器:自定義類(lèi)繼承于轉(zhuǎn)換器基類(lèi)
  • 添加轉(zhuǎn)換器到默認(rèn)的轉(zhuǎn)換器字典中
  • 使用自定義轉(zhuǎn)換器實(shí)現(xiàn)自定義匹配規(guī)則

代碼實(shí)現(xiàn)

導(dǎo)入轉(zhuǎn)換器基類(lèi)

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個(gè)參數(shù)當(dāng)作匹配規(guī)則進(jìn)行保存
    self.regex = args[0]

添加轉(zhuǎn)換器到默認(rèn)的轉(zhuǎn)換器字典中,并指定轉(zhuǎn)換器使用時(shí)名字為: re

app = Flask(__name__)
# 將自定義轉(zhuǎn)換器添加到轉(zhuǎn)換器字典中,并指定轉(zhuǎn)換器使用時(shí)名字為: 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)行測(cè)試:http://127.0.0.1:5000/user/123 ,如果訪問(wèn)的url不符合規(guī)則,會(huì)提示找不到頁(yè)面

系統(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)換器的注釋代碼中有寫(xiě),要注意每種轉(zhuǎn)換器初始化的參數(shù)。

總結(jié)

以上所述是小編給大家介紹的正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • js正則表達(dá)式 匹配兩個(gè)特定字符間的內(nèi)容示例
  • 正則表達(dá)式之匹配數(shù)字范圍
  • PHP preg_match實(shí)現(xiàn)正則表達(dá)式匹配功能【輸出是否匹配及匹配值】
  • Java正則表達(dá)式(匹配、切割、替換、獲取)等方法
  • C#正則表達(dá)式匹配與替換字符串功能示例
  • JS匹配日期和時(shí)間的正則表達(dá)式示例
  • 正則表達(dá)式實(shí)現(xiàn)字符的模糊匹配功能示例
  • 正則表達(dá)式匹配括號(hào)外的符號(hào)及數(shù)據(jù)

標(biāo)簽:泰安 哈密 大興安嶺 湖州 涼山 本溪 常州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼》,本文關(guān)鍵詞  正則,表達(dá)式,匹配,路由,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于正則表達(dá)式匹配路由的實(shí)現(xiàn)代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    紫云| 牟定县| 宜兰县| 天全县| 丰县| 伊川县| 吉安县| 民县| 台州市| 阿图什市| 金沙县| 雅安市| 沙湾县| 绥阳县| 邯郸县| 洞口县| 星子县| 贺兰县| 乌拉特后旗| 三都| 南康市| 秭归县| 抚顺市| 改则县| 乡宁县| 衡阳县| 伊通| 洛南县| 扎鲁特旗| 永丰县| 饶阳县| 鄂尔多斯市| 如东县| 安泽县| 海淀区| 冕宁县| 山东省| 大兴区| 苏尼特右旗| 北辰区| 富宁县|