zoukankan      html  css  js  c++  java
  • 自定义flask转换器

    自定义flask转换器

    以匹配手机号为例:

    # 1. 定义自己的转换器
    class MobileConverter(BaseConverter):
        def __init__(self, url_map):
            super(MobileConverter, self).__init__(url_map)
            self.regex = r'1[34578]d{9}'
    
    
    class RegexConverter(BaseConverter):
        """"""
        def __init__(self, url_map, regex):
            # 调用父类的初始化方法
            super(RegexConverter, self).__init__(url_map)
            # 将正则表达式的参数保存到对象的属性中,flask会去使用这个属性来进行路由的正则匹配
            self.regex = regex
    
        def to_python(self, value):
            """"""
            print("to_python方法被调用")
            # return "abc"
            # value是在路径进行正则表达式匹配的时候提取的参数
            return value
    
        def to_url(self, value):
            """使用url_for的方法的时候被调用"""
            print("to_url方法被调用")
            # return "15811111111"
            return value
    
    
    # 2. 将自定义的转换器添加到flask的应用中
    app.url_map.converters["re"] = RegexConverter
    app.url_map.converters["mobile"] = MobileConverter
    
    
    # 127.0.0.1:5000/send/18612345678
    # @app.route("/send/<mobile:mobile_num>")
    @app.route("/send/<re(r'1[34578]d{9}'):mobile_num>")
    def send_sms(mobile_num):
        return "send sms to %s" % mobile_num
    

      

    输出:

    说明:

    re为万能转换器,可以任意写正则

    延伸:转换器的运行线路:

  • 相关阅读:
    iOS 方便的宏定义
    IOS 推送消息 php做推送服务端
    iOS 7 动画UIDynamicAnimator
    iOS 适配
    ios 实现简单的解析xml网页
    用 MPMoviePlayerController 实现简单的视频下载播放功能
    ios 自定义弹出对话框效果
    ios国外大神
    git学习
    ios 7UI适配方法
  • 原文地址:https://www.cnblogs.com/andy9468/p/10871828.html
Copyright © 2011-2022 走看看