flask中自定義路由轉換類

2021-08-17 14:18:26 字數 1462 閱讀 3178

在flask中自帶的有很多路由轉換類,但有時候自帶的路由轉換類無法完整的實現我們想要的功能,這時候我們可以自定義路由轉換類,來實現自己想要的功能.

0,首先自定義的路由轉換類需要繼承自轉換的基類

1,編寫自己的路由類,實現自定義功能

2,將自定義的路由轉換類新增到系統的路由列表中

這個自定義轉換的路由類只能實現四位數字的匹配,不能實現我們想要什麼就能匹配什麼的功能,我們對其進行完善.

# -*- coding:utf-8 -*-

from flask import flask, redirect, url_for

from werkzeug.routing import baseconverter

class regexconverter(baseconverter):

"""實現外界傳入什麼正則,我就匹配什麼條件"""

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

self.regex = args[0]

# 機制:在匹配成功之後,mapadapter執行匹配和呼叫檢視函式,呼叫檢視函式之前,可以得到要匹配的引數

# 作用:可以在這個方法中,對要匹配的引數進行進一步的處理,比如轉換資料型別

def to_python(self, value):

value = int(value)

return value

# 需要搭配url_for使用的

# 機制:在匹配成功之前,在檢視函式呼叫之前,獲取要匹配的引數

# 作用:可以在這個方法中,對要匹配的引數進行第一次的處理,比如對不合格的引數進行校正或者修復,盡量滿足正則

# 保證能夠順利的進入到to_python

# 只要能夠進入到to_python就說明匹配成功,匹配成功檢視函式才會呼叫

def to_url(self, value):

value = '%03d'%value

return value

# 將自定義的路由轉換器的類新增到預設的轉換器列表中

def order(order_id):

return 'order %s' % order_id

這樣我們傳入什麼樣的正則,就能匹配什麼型別.,並且可以將url中捕獲

url匹配的過程

路由配置過程中的關鍵類

flask中自定義路由轉換器

自定義路由轉換器是什麼?為什麼要用到路由轉換器?在 用到了自定義路由轉換器?該怎麼使用自定義路由轉換器?自定義路由轉換器 自定義路由轉換器是乙個過程,講的是通過自定義的方式,來使用路由轉換器。在編寫後端程式過程中,若要實現客戶端能夠按照url規則進行服務端的訪問,可以自定義路由。自定義路由規則時需要...

flask框架 自定義路由轉換器

from flask import flask,request from werkzeug.routing import baseconverter 需求 127.0.0.1 5000 mobile 18511112222 自定義轉換器類 思路 1.自定義轉換器類,繼承於 baseconverter...

Flask自定義轉換器

flask框架中自帶的轉換器 default converters flask框架中的轉換器的自定義,具體流程如下 匯入轉換器基類 在 flask 中,所有的路由的匹配規則都是使用轉換器物件進行記錄 自定義轉換器 自定義類繼承於轉換器基類 新增轉換器到預設的轉換器字典中 使用自定義轉換器實現自定義匹...