欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

转换器

程序员文章站 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步

  1. 创建转换器类,保存匹配时的正则表达式

    from werkzeug.routing import BaseConverter
    
    class MobileConverter(BaseConverter):
        """
        手机号格式
        """
        regex = r'1[3-9]\d{9}'
    
    • 注意regex名字固定
  2. 将自定义的转换器告知Flask应用

    app = Flask(__name__)
    
    # 将自定义转换器添加到转换器字典中,并指定转换器使用时名字为: mobile
    app.url_map.converters['mobile'] = MobileConverter
    
  3. 在使用转换器的地方定义使用

    @app.route('/sms_codes/<mobile:mob_num>')
    def send_sms_code(mob_num):
        return 'send sms code to {}'.format(mob_num)
    
相关标签: Falsk转换器