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

由于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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,059评论 0 20
  • 前言 作为一个程序员,要出去装逼,手中必备的技能就是正则表达式。程序员的正则表达式,医生的处方和道士的鬼画符,都是...
    Layzimo阅读 571评论 0 6
  • 22年12月更新:个人网站关停,如果仍旧对旧教程有兴趣参考 Github 的markdown内容[https://...
    tangyefei阅读 35,215评论 22 257
  • 什么是正则表达式 正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),...
    小貔阅读 1,534评论 0 7
  • 如果真的没在一起 你也别难过 失去的东西 就顺其自然吧 转身的方式有很多 纠缠是最不酷的一种
    依旧那个子晗阅读 272评论 0 0