Converter过滤器基本使用:
from flask import Flask
from werkzeug.routing import BaseConverter # 导入BaseConverter包
# 继承BaseConverter类写自己的过滤器
class ReConverter(BaseConverter):
def __init__(self, map, *args): # *args接收所有的未知参数
super().__init__(map) # map,初始化BaseConverter类时需要的参数, 传给父类处理
self.regex = args[0] # 选取第一个接受到的参数作为正则表达式
app = Flask(__name__)
app.url_map.converters["re"] = ReConverter # 为过滤器取别名re
@app.route("/index/<re('[0-9]{4}'):id>", methods=["GET", "POST"]) # 过滤除了4位数字的其他地址
def index(id):
return "This is a page " + str(id)
if __name__ == "__main__":
app.run()
过滤效果: