日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

正则匹配路由

發(fā)布時(shí)間:2025/4/5 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 正则匹配路由 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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

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

  • 導(dǎo)入轉(zhuǎn)換器基類:在 Flask 中,所有的路由的匹配規(guī)則都是使用轉(zhuǎn)換器對(duì)象進(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個(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?,如果訪問的url不符合規(guī)則,會(huì)提示找不到頁面

系統(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ù)。

???????????????????????????????????????????????????????????????????-------??知識(shí)無價(jià),汗水有情,如需搬運(yùn)請(qǐng)注明出處,謝謝!

總結(jié)

以上是生活随笔為你收集整理的正则匹配路由的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。