flask原始碼之擴充套件支援正則路由

2021-08-27 16:08:07 字數 987 閱讀 1533

flask裡面本身支援字串,浮點型,整形以及路徑,其實這些已經足夠用了,但是如果你就是要想它支援正則,也是可以的,我們可以擴充套件一下它,使他也支援正則。

from flask import flask, views, url_for

from werkzeug.routing import baseconverter

#1.寫regexconverter裝換器類

class

regexconverter

(baseconverter):

""" 自定義url匹配正規表示式

"""def__init__

(self, map, regex):

super(regexconverter, self).__init__(map)

self.regex = regex

defto_python

(self, value):

""" 路由匹配時,匹配成功後傳遞給檢視函式中引數的值

:param value:

:return:

"""return value

defto_url

(self, value):

""" 使用url_for反向生成url時,傳遞的引數經過該方法處理,返回的值用於生成url中的引數

:param value:

:return:

"""val = super(regexconverter, self).to_url(value)

return val

#2.將轉換器類新增到flask的預設路由系統字典中

#正則匹配成功後進入檢視函式之前會呼叫to_python函式,進行二次處理

defindex

(nid):

print(nid)

return

'index'

if __name__ == '__main__':

flask框架(六) 實現支援正則的路由

一 預設路由 user post post post login methods get post 常用路由系統有以上五種,所有的路由系統都是基於一下對應關係來處理 default converters 二 寫轉換器類,支援正則路由 class regexconverter baseconverte...

Dubbo原始碼分析之擴充套件機制(3)

獲取到自適應型別後進行例項化並且進行屬性注入,這裡會判斷物件工廠是否為空,當型別type為extensionfactory時會為空,也就是不會注入屬性,它的自適應型別為adaptiveextensionfactory,所以其他型別的objectfactory就是adaptiveextensionfa...

Spring原始碼學習之容器的功能擴充套件

我們都站在巨人的肩膀上 宣告 參考 spring原始碼深度解析 beanfactory bf new xmlbeanfactory new classpathresource beanfactorytest.xml 2.設定配置路徑public void setconfiglocations str...