天津手机网站公司,网站建设合同要上印花税吗,app 游戏网站建设,模板网站如何做seo目录
一、简述
二、安装schema库
三、使用
基本概念
代码示例
简单使用
列表验证
正则表达式 一、简述
schema用于简化数据验证的过程。它提供了一种简单的方式来定义数据结构#xff0c;并验证传入的数据是否符合预期的结构。schema 库非常适合用于 Web 应用的请求验…目录
一、简述
二、安装schema库
三、使用
基本概念
代码示例
简单使用
列表验证
正则表达式 一、简述
schema用于简化数据验证的过程。它提供了一种简单的方式来定义数据结构并验证传入的数据是否符合预期的结构。schema 库非常适合用于 Web 应用的请求验证、配置文件解析以及其他需要数据验证的场景。
二、安装schema库
pip install schema
三、使用
基本概念
Schema: 定义验证规则的对象。And: 用于组合多个验证器要求所有验证器都通过。Or: 用于组合多个验证器只要其中一个验证器通过即可。Use: 将验证后的数据转换为其他形式。Optional: 定义可选字段。Regex: 使用正则表达式验证字符串。SchemaError: 验证失败时抛出的异常。
代码示例
简单使用
from schema import Schema, And, Optional, SchemaError# 验证数据
data {name: Alice,age: 30,email: ALICEEXAMPLE.COM,phone: 13578965478,aaa: 144,info: {addr: BeiJing,card: 12312313123131231322X}
}# 定义规则
schema_params {name: And(str, len),age: And(int, lambda a: 0 a 150, error年龄不为数字或年龄大于0小于150),email: And(str),Optional(phone): And(str, lambda p: len(p) 11, error手机号格式错误),info: {addr: And(len, error每个人不能没有家住址),card: And(len, error每个人都得有身份证)}
}# 设置 ignore_extra_keysTrue 时如果传入的数据包含不在验证模式中的额外键这些键将被忽略而不会引发错误。
rule_schema Schema(schema_params, ignore_extra_keysTrue)
try:rule_schema.validate(data)
except SchemaError as e:print(e)
列表验证
from schema import Schema, And, Use# 定义验证规则
schema Schema({users: [{name: str,age: And(int, lambda n: 0 n 120)}]
})# 验证数据
data {users: [{name: Alice, age: 30},{name: Bob, age: 25}]
}try:validated_data schema.validate(data)print(Validated data:, validated_data)
except SchemaError as e:print(Validation error:, e)
正则表达式
from schema import Schema, Regex# 定义验证规则
schema Schema({email: Regex(r^[a-zA-Z0-9._%-][a-zA-Z0-9.-]\.[a-zA-Z]{2,}$)
})# 验证数据
data {email: aliceexample.com
}try:validated_data schema.validate(data)print(Validated data:, validated_data)
except SchemaError as e:print(Validation error:, e)