flask路由正则表达式
作者:高景洋 日期:2021-06-11 06:48:20 浏览次数:968
在flask开发过程中,我们有时会需要用正则匹配路由,那我们需要怎么做呢?
直接看下边的代码
1、需要一个正则匹配类,我们将它放在 项目中的 url_helper.py 中
from werkzeug.routing import BaseConverter
class RegexConverter(BaseConverter):
"""
自定义URL匹配正则表达式
"""
def __init__(self, map, regex):
super(RegexConverter, self).__init__(map)
self.regex = regex
def to_python(self, value):
"""
路由匹配时,匹配成功后传递给视图函数中参数的值
:param value:
:return:
"""
return value
def to_url(self, value):
"""
使用url_for反向生成URL时,传递的参数经过该方法处理,返回的值用于生成URL中的参数
:param value:
:return:
"""
val = super(RegexConverter, self).to_url(value)
return val
2、将正则类注册到flask中
app = Flask(__name__)
app.url_map.converters['regex'] = RegexConverter
@app.route('/<regex("beijing|qingdao"):key>.html')
def method_test(key):
do something
本文永久性链接:
<a href="http://r4.com.cn/art192.aspx">flask路由正则表达式</a>
<a href="http://r4.com.cn/art192.aspx">flask路由正则表达式</a>