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)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/123389.html