1.說明
由於flask並不支持直接使用正則表達式來匹配路由,我們可以使用werkzeug.routing的BaseConverter來實現
2.代碼
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位的數字結尾 ,
效果如圖
