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>'

不符合规则就不行

相关推荐
程序猿 小项目大搞头几秒前
即梦批量生成图片软件使用运营大管家-即梦图片批量生成器
python
dpxiaolong11 分钟前
RK3588 Android12默认移除导航栏
开发语言·python
max50060037 分钟前
基于多元线性回归、随机森林与神经网络的农作物元素含量预测及SHAP贡献量分析
人工智能·python·深度学习·神经网络·随机森林·线性回归·transformer
Pocker_Spades_A41 分钟前
Python快速入门专业版(二十九):函数返回值:多返回值、None与函数嵌套调用
服务器·开发语言·python
良木林44 分钟前
浅谈原型。
开发语言·javascript·原型模式
yunpeng.zhou1 小时前
logging 模块升级版 loguru
python
烈风1 小时前
004 Rust控制台打印输出
开发语言·后端·rust
一枝小雨1 小时前
【C++】list 容器操作
开发语言·c++·笔记·list·学习笔记
HMBBLOVEPDX1 小时前
C++(继承和多态)
开发语言·c++·继承和多态
kida_yuan1 小时前
【从零开始】14. 数据评分与筛选
python·数据分析·nlp