转换器
程序员文章站
2022-05-19 15:31:56
...
flasl转化器
-
@app.route(’/users/<name_id>’) # 匹配任意格式的字符串(此处
<>
就是一个转换器,默认为字符串类型,user_id为参数名传入视图) -
整型匹配数据
@app.route('/users/<int:user_id>') def user_info(user_id): print(type(user_id)) return 'hello user {}'.format(user_id)
自定义转换器
因遇到某些特殊数据(如:提取/sms_codes/18512345678
中的手机号数据),Flask内置转换器无法完成,这时就需要自定义转换器
自定义转换器主要做3步
-
创建转换器类,保存匹配时的正则表达式
from werkzeug.routing import BaseConverter class MobileConverter(BaseConverter): """ 手机号格式 """ regex = r'1[3-9]\d{9}'
- 注意
regex
名字固定
- 注意
-
将自定义的转换器告知Flask应用
app = Flask(__name__) # 将自定义转换器添加到转换器字典中,并指定转换器使用时名字为: mobile app.url_map.converters['mobile'] = MobileConverter
-
在使用转换器的地方定义使用
@app.route('/sms_codes/<mobile:mob_num>') def send_sms_code(mob_num): return 'send sms code to {}'.format(mob_num)