步骤:
"""
1. 导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录2. 自定义转换器:自定义类继承于转换器基类
3. 添加转换器到默认的转换器字典中
4. 使用自定义转换器实现自定义匹配规则
"""
代码:
from flask import Flask# 1. 导入转换器基类:在 Flask 中,所有的路由的匹配规则都是使用转换器对象进行记录
from werkzeug.routing import BaseConverter
from common import ReConverter
# 2. 自定义转换器:自定义类继承于转换器基类
class RegexConverter(BaseConverter):
# 2.1 重写__init__ : 为了扩充参数
def __init__(self, url_map, regex):
# 2.2 调用父类方法
# BaseConverter.__init__(self, url_map)
super(RegexConverter, self).__init__(url_map)
# 2.3 重新赋值regex属性
self.regex = regex
# 3. 添加转换器到默认的转换器字典中
# converters: 存放所有转换器的字典
app.url_map.converters['re'] = RegexConverter
# 手机号匹配
# 4. 使用自定义转换器实现自定义匹配规则
@app.route('/login/<re("1[3-9][0-9]{9}"):mobile>')
def hello_world(mobile):return 'mobile: %s' % mobile
if __name__ == '__main__':
app.run(debug=True)