flask匹配url使用正則
需求:url=localhost/auth_id/?參數,當auth_id為4位隨機數時,導致web服務器反向代理找不到路徑,從而對authid進行正則匹配
實現方式:
- 從wsgi服務類導入轉換器基類
from werkzeug.routing import BaseConverter
- 自定義正則轉換器類繼承於轉換器類
def __init__(self, url_map, regex):
super().__init__(map=url_map)
self.regex = regex
def to_python(self, value):
return int(value)
- 在app調用時添加這個類到轉換器字典中
app.url_map.converters['re'] = RegexConverter
- 在編寫路由時可以加入正則表達式
@api_policy.route('/<re("[0-9]{4}"))/, methods=["POST"])
實現了使用正則匹配url