当前位置:首页 - Python

flask路由正则表达式

作者:高景洋 日期:2021-06-11 06:48:20 浏览次数:1289

在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


3、进行路由引用



@app.route('/<regex("beijing|qingdao"):key>.html')
def method_test(key):      
    do something



本文永久性链接:
<a href="http://r4.com.cn/art192.aspx">flask路由正则表达式</a>
当前header:Host: www.r4.com.cn X-Forwarded-For: 3.147.52.8 X-Real-Ip: 3.147.52.8 X-Domain: r4.com.cn Connection: close Accept: */* User-Agent: Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) Accept-Encoding: gzip, br, zstd, deflate