flask路由正则表达式
作者:高景洋 日期:2021-06-11 06:48:20 浏览次数:1921
在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>
当前header:Host: r4.com.cn
X-Host1: r4.com.cn
X-Host2: r4.com.cn
X-Host3: 127.0.0.1:8080
X-Forwarded-For: 3.149.26.96
X-Real-Ip: 3.149.26.96
X-Domain: r4.com.cn
X-Request: GET /art192.aspx HTTP/1.1
X-Request-Uri: /art192.aspx
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