当前位置: 首页 > news >正文

网站群建设思路标书制作简单吗

网站群建设思路,标书制作简单吗,中国建设银行官网首页登录,网站开发的话 dw里面选择啥文章目录Marshmallow 库介绍使用序列化反序列化参数介绍schema参数fields 参数钩子函数内置验证器Meta 属性Marshmallow 库 介绍 marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库#xff0c;简而言之#xff0c;就是实现object - dict#… 文章目录Marshmallow 库介绍使用序列化反序列化参数介绍schema参数fields 参数钩子函数内置验证器Meta 属性Marshmallow 库 介绍 marshmallow是一个用来将复杂的orm对象与python原生数据类型之间相互转换的库简而言之就是实现object - dict objects - list, string - dict 和 string - list。 序列化序列化的意思是将数据对象转化为可存储或可传输的数据类型 反序列化将可存储或可传输的数据类型转化为数据对象 要进行序列化或反序列化首先我们需要一个用来操作的object这里我们先定义一个类 import datetimeclass User:def __init__(self, name, age):self.name nameself.age ageself.c_time datetime.datetime.now()使用 序列化 通过 继承Schema 定义一个序列化类 class UserSchema(Schema):name fields.String()age fields.Integer()c_time fields.DateTime()生成一个对象进行序列化 user User(yxh, 20) # 生成 schema 对象 schema UserSchema()schema 对象序列化有两个方法dump() 返回 dict 格式数据dumps() 放回 json 格式数据print(schema.dump(user)) # {c_time: 2023-02-27T10:48:10.481042, age: 20, name: yxh} print(schema.dumps(user)) # {c_time: 2023-02-27T10:48:10.481042, age: 20, name: yxh}反序列化 res {name: yxh, c_time: 2023-02-27T10:51:06.713273, age: 20} print(schema.load(res)) # {age: 20, name: yxh, c_time: datetime.datetime(2023, 2, 27, 10, 51, 6, 713273)}对反序列化而言, 将传入的dict变成object更加有意义. 在Marshmallow中, dict - object的方法需要自己实现, 然后在该方法前面加上一个装饰器post_load即可 class UserSchema(Schema):name fields.String()age fields.Integer()c_time fields.DateTime()post_loaddef make_user(self, data, **kwargs):data.pop(c_time) # user 对象没有 c_time 字段return User(**data)res {name: yxh, c_time: 2023-02-27T10:51:06.713273, age: 20} item schema.loads(res) print(item) # __main__.User object at 0x000002621BAB7588参数介绍 schema参数 demo UserSchema(only{name, age}) 参数可以 在实例化 sechema 对象时配置也可以在使用序列化/反序列化时 传入 schema.dump(users,manyTrue)参数名作用补充only指定序列化字段load_only/dump_onlyexclude抛弃未知字段many默认为False批量序列化使用partial忽略字段可指定忽略字段也可设置为True就忽略传入字段外的其他字段通常在load()中使用能够忽略 required True 的字段 fields 参数 参数名作用补充required默认为False定义为True 时必传validate指定校验方法error_messages设置错误信息配合 required使用attribute指定序列化时获取对象属性默认是字段名load_from指定反序列化时字典key 对应的对象属性默认是字段名data_keyattribute和load_from 结合体default指定默认值cls_or_instance用于可变类型嵌套allow_none序列化/反序列化期间True是否None应被视为有效值。如果missingNone和allow_none未设置则默认为True。否则默认值为False。metadata存储为元数据的额外参数 projects fields.List(cls_or_instancefields.Dict)特殊数据类型: fields.Nested(nested, type, str, Callable[[], …) 类似于django中的外键序列化类型用于使用额外的Schema序列化外键对象fields.Method(serialize, deserialize, **kwargs) 一个采用Schema方法返回值的字段。类似于django序列化器中的函数字段可以通过方法构造一个完整的字段返回该字段可以不是模型中存在的。fields.Function(serialize, Any], Callable[[Any, …) 接受函数返回值的字段。可将字段通过函数处理后将函数返回值作为该字段的值序列化返回。钩子函数 自定义反序列化校验函数函数 方案1 def validate_name(name):if len(name) 2:raise ValidationError(name长度必须大于2位)if len(name) 6:raise ValidationError(name长度不能大于6位)class UserSchema(Schema):name fields.String(requiredTrue, validatevalidate_name)age fields.Integer()c_time fields.DateTime() 方案2 from marshmallow import Schema, fields, validatesclass UserSchema(Schema):name fields.String(requiredTrue)age fields.Integer()c_time fields.DateTime() validates(name)def validate_name(self, value):if len(value) 2:raise ValidationError(name长度必须大于2位)if len(value) 6:raise ValidationError(name长度不能大于6位)内置验证器 validate.Email(*, error) 邮箱验证error 表示可以替换内置的异常提示语传入值为字符串。validate.Equal(comparable, *, error) 相等验证验证输入值是否等于给定值validate.Length(min, max, *, equal, error) 长度验证验证输入值的最大最小validate.OneOf(choices, labels, *, error) 选项验证验证输入值是否属于选项validate.Range([min, max]) 范围验证validate.Regexp(regex, bytes, Pattern][, flags]) 正则验证validate.URL(*, relative, schemes, Set[str]] None, …) 验证是否为URLMeta 属性 除了在生成 schema 对象是传入参数也可以在定义阶段通过 Meta 类来实现对属性的控制, 可定义类型常用 有 fileds 和 exclude 两个字段。 class Meta:fields (id, email, date_created)exclude (password, secret_attribute)
http://www.dnsts.com.cn/news/232001.html

相关文章:

  • 做电影网站会被捉吗望京SOHO网站建设
  • 量化交易网站开发网站做后台
  • 安阳做网站哪里好做图标去什么网站找
  • 去哪里找做网站的人为什么网站建设需要每年续费
  • 网站首页收录没了品牌建设要求
  • 做外贸怎样上外国网站巴中模板建站价格多少
  • 建设网站的心得体会中国铁建门户登录
  • 网站开发工期安排建设银行租房平台网站6
  • 企业网站开发设计做迅雷下载电影类网站会侵权么
  • 网站建好了怎么做才赚钱青岛网页设计哪个公司好
  • 惠州网站建设科技有限公司外贸网站推
  • 云南交投集团公路建设有限公司网站做公司网站的企业
  • 南县网站开发装修设计网站排行榜
  • 建设个人你网站金山企业型网站建设
  • 素材网站视频深圳中高端网站建设怎么样
  • vs2012网站开发环境设计外贸网站建设
  • 什么网站做免单衣服wordpress设置网站主题
  • 个人主页界面网站惠州市建设局建工办网站
  • 给我一个网站2021手机网站做静态路径
  • 男男床上爱做 网站logo在线设计生成器小程序
  • aspx网站开发 案例用别人的二级域名做网站
  • 网站分站系统去掉网站侧边栏
  • 网站建设公司 优势28网站建设
  • 寿光专业做网站的公司有哪些沈阳企业模板建站
  • 视频网站开发项目网站开发文案模板
  • 龙华网站建设方案咨询微信小程序模板开发
  • 怎样做网站平台赚钱吗电子信息工程移动互联网方向
  • 企业做网站需要花多少钱怎么才能创建一个网站
  • 北京建设信息咨询中心网站策划公司招聘
  • 信息课做网站的软件wordpress博客批量发布