【Flask】自定义转换器

本文介绍了如何在Flask中自定义转换器以匹配和提取手机号码。首先,通过创建一个继承自BaseConverter的MobileConverter类,并设置匹配手机号的正则表达式。然后,将自定义转换器添加到Flask应用的转换器列表中,指定转换器名为'phone'。最后,在路由中使用转换器处理/sms_codes/<phone:mob_num>这样的URL,从而在视图函数中获取到手机号码。
摘要由CSDN通过智能技术生成

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)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

敲代码敲到头发茂密

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值