美文网首页
Flask路由中使用正则表达式匹配

Flask路由中使用正则表达式匹配

作者: 孙宏志 | 来源:发表于2017-06-17 23:59 被阅读0次

    由于flask并不支持直接使用正则表达式来匹配路由,我们可以使用werkzeug.routing的BaseConverter来实现

    代码:

    from flask import Flask
    from werkzeug.routing import BaseConverter
    
    class RegexConverter(BaseConverter):
        def __init__(self, url_map,*items):
            super(RegexConverter,self).__init__(url_map)
            self.regex = items[0]
    
    app = Flask(__name__)
    app.url_map.converters['reg'] = RegexConverter
    
    @app.route('/user/<reg("[a-z]{3}-\d{5,6}"):user_id>')
    def user(user_id):
        return 'user id : %s' %user_id
    
    if __name__ == '__main__':
        app.run()
    

    其中路由中使用的reg字符串表示匹配 三个小写英文字母开头,中间短横,末尾以5到6位的数字结尾

    效果如图:

    image.png

    相关文章

      网友评论

          本文标题:Flask路由中使用正则表达式匹配

          本文链接:https://www.haomeiwen.com/subject/iuabqxtx.html