Python Flask 自定义转换器验证参数

复制代码
import typing as t

from flask import Flask
from werkzeug.routing import BaseConverter

app = Flask(__name__)


class RegexConverter(BaseConverter):
    def __init__(self, url_map, items):
        super(RegexConverter, self).__init__(url_map)
        self.regex = items

    def to_python(self, value: str) -> t.Any:
        print("to python called")
        return value


app.url_map.converters['re'] = RegexConverter


@app.route('/<re("1234"):value>', methods=['GET', "POST"])
def index(value):
    return f'<h1>hello{value} world</h1>'


if __name__ == '__main__':
    app.run(debug=True)

如果访问

符合的正则才有数据,否则就没有数据

比如定义手机号正则就可以

复制代码
@app.route('/<re("1\d{10}"):value>', methods=['GET', "POST"])
def index(value):
    return f'<h1>hello{value} world</h1>'

不符合规则就不行

相关推荐
2301_77514815几秒前
c++怎么抛出文件读写异常_exceptions()方法开启流异常【详解】
jvm·数据库·python
leaves falling1 分钟前
C++ 继承详解:从入门到深入
开发语言·c++
码农很忙2 分钟前
从零到英雄:使用 Playwright 实现高效网页数据爬取与自动化测试
爬虫·python
2401_883600252 分钟前
如何用 super 绑定机制在子类构造函数中调用父类
jvm·数据库·python
yuanpan3 分钟前
Python 连接 SQLite 数据库:从建表到增删改查的完整演示项目
数据库·python·sqlite
2401_871696523 分钟前
HTML怎么构建开发者仪表盘_HTML关键指标卡片汇总【教程】
jvm·数据库·python
2301_796588503 分钟前
c++ aot编程 c++如何使用oneapi进行跨平台并行编程
jvm·数据库·python
草木红6 分钟前
Python 中使用 Docker Compose
开发语言·python·docker·flask
qq_413847407 分钟前
JavaScript中剩余参数在函数签名中的定义位置与限制
jvm·数据库·python
qq_330037998 分钟前
mysql如何配置多实例运行环境_单机部署多个数据库服务
jvm·数据库·python