在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 中,所有的路由的匹配規則都是使用轉換器物件進行記錄 自定義轉換器 自定義類繼承於轉換器基類 新增轉換器到預設的轉換器字典中 使用自定義轉換器實現自定義匹...