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

不符合规则就不行

相关推荐
缺点内向2 小时前
C#: 高效移动与删除Excel工作表
开发语言·c#·.net·excel
老前端的功夫2 小时前
Web应用的永生之术:PWA落地与实践深度指南
java·开发语言·前端·javascript·css·node.js
@forever@2 小时前
【JAVA】LinkedList与链表
java·python·链表
程序员爱钓鱼3 小时前
Python编程实战:面向对象与进阶语法——类型注解与代码规范(PEP 8)
后端·python·ipython
程序员爱钓鱼3 小时前
Python实战:用高德地图API批量获取地址所属街道并写回Excel
后端·python·ipython
ᐇ9593 小时前
Java HashMap深度解析:数据结构、原理与实战指南
java·开发语言·数据结构
QT 小鲜肉4 小时前
【个人成长笔记】在 Linux 系统下撰写老化测试脚本以实现自动压测效果(亲测有效)
linux·开发语言·笔记·单片机·压力测试
程序员龙一4 小时前
C++之static_cast关键字
开发语言·c++·static_cast
yue0084 小时前
C# 分部类读取学生信息
开发语言·c#
奶茶树4 小时前
【C++/STL】map和multimap的使用
开发语言·c++·stl