flask中使用自定义转换器去自定义匹配规则

'''
- 导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录
- 自定义转换器:自定义类继承于转换器基类
- 添加转换器到默认的转换器字典中
- 使用自定义转换器实现自定义匹配规则
'''
from flask import Flask
# 1.导入转换器基类
from werkzeug.routing import BaseConverter

# 2.自定义转换器
class RegexConverter(BaseConverter):
    # 为了扩充参数,所以重写__init__方法,regex是我们自己传的参数
    def __init__(self,url_map,regex):
        # 为了保证父类的代码能够正确执行, 所以调用supper
        super(RegexConverter,self).__init__(url_map)
        # 使用传入的参数的表达式的结果, 替换原先的表达式
        self.regex = regex

app = Flask(__name__)

#3.添加转换器到默认的转换器字典中
app.url_map.converters['re'] = RegexConverter


@app.route('/mobile/<re("1[34578]\d{9}"):number>')
def get_mobile(number):
    return '电话号码为:%s'% number


if __name__ == '__main__':
    app.run(debug=True)

阅读更多
换一批

没有更多推荐了,返回首页