这里写目录标题
Flask中提供的转换器
DEFAULT_CONVERTERS = {
'default': UnicodeConverter,
'string': UnicodeConverter,
'any': AnyConverter,
'path': PathConverter,
'int': IntegerConverter,
'float': FloatConverter,
'uuid': UUIDConverter,
}
自定义转换器
如果遇到需要匹配提取 /sms_codes/18512345678 中的手机号数据,Flask内置的转换器就无法满足需求,此时需要自定义转换器。
定义方法
自定义转换器主要做3步
1. 创建转换器类,保存匹配时的正则表达式
我们自定义的转换器必须继承当前的BaseConverter父类
class MobileConverter(BaseConverter):
'''定义一个匹配手机号码的正则表达式,regex名字不能改变'''
regex = r'1[3-9]\d{9}'
2. 将自定义的转换器告知Flask应用
将自定义的转换器添加到转换器列表中
phone是转换器的名字
MobileConverter是转换器值
#static_url_path:相当于路由
app = Flask(__name__) #初始化Flask项目的服务
#将自定义的转换器添加到转换器列表中
app.url_map.converters['phone']=MobileConverter #phone是转换器的名字
3. 在使用转换器的地方定义使用
转换器:phone
@app.route('/phone/<phone:mob_num>')
def phone_number(mob_num):
return '当前的手机号码是{}'.format(mob_num)