Flask自定義轉換器

2021-08-29 02:00:33 字數 1871 閱讀 5591

flask框架中自帶的轉換器:

default_converters =
flask框架中的轉換器的自定義,具體流程如下:

匯入轉換器基類:在 flask 中,所有的路由的匹配規則都是使用轉換器物件進行記錄;

自定義轉換器:自定義類繼承於轉換器基類;

新增轉換器到預設的轉換器字典中;

使用自定義轉換器實現自定義匹配規則。

下面以正則匹配作為案例進行分析:

from werkzeug.routing import baseconverter

基類的部分源**:

class baseconverter(object):

"""base class for all converters."""

regex = '[^/]+'

weight = 100

def __init__(self, map):

self.map = map

方法一:直接修改基類的regex屬性值)

class regexconverter(baseconverter):

# regex = '(\\d+,?)+\\d$' # 修改父類的的regex屬性

(方法二:重寫父類的__init__方法,更改例項屬性self.regex的值)

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

self.regex = args[0] # 重寫父類的例項屬性值

這句**實現的效果如下:

default_converters =
方法一實現方式:

# <> 裡面是給路由新增的引數;需要使用的正則在re裡面寫好了

def demo6(use_ids):

return '資料是%s' % use_ids

方法二實現方式

# 想要進行的匹配方式,寫在re後面,re(''正規表示式'')

def demo7(use_ids):

return '資料是%s' % use_ids

方法一完整**:

from werkzeug.routing import baseconverter

class regexconverter(baseconverter):

regex = '(\\d+,?)+\\d$'

def demo6(use_ids):

return '資料是%s' % use_ids

方法二完整**:

from werkzeug.routing import baseconverter

class regexconverter(baseconverter):

def __init__(self, url_map, *args):

super(regexconverter, self).__init__(url_map)

self.regex = args[0]

def demo7(use_ids):

return '資料是%s' % use_ids

flask自定義re轉換器

自帶的幾種轉換器 default converters 自定義re轉換器 from werkzeug.routing import baseconverter 正則轉換器 class regexconverter baseconverter def init self,url map,args su...

flask 自定義url轉換器

可以指定url的規制,對url做一定的限制。首先我們提乙個需求,根據需求來寫 現在我們假設乙個url需要滿足 號碼的格式才能訪問我們的函式檢視,例如這樣的url 127.0.0.1 5000 user 號碼 首先匯入baseconverter from werkzeug.routing import...

Flask自定義轉換器要點

本篇通過兩個示例,講解 flask 自定義轉換器的要點 1 如果需要校驗 url 中 path 的規則,在自定義轉換器的 init 方法中改寫 override baseconverter 的regex屬性。或者在轉換器所在類中直接對regex屬性賦值,如 integerconverter clas...