-
Notifications
You must be signed in to change notification settings - Fork 0
/
marshmallow.py
105 lines (66 loc) · 2.14 KB
/
marshmallow.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
from marshmallow import Schema, fields, pprint, post_load, ValidationError, validate
import datetime as dt
# class User:
# def __init__(self, name, email):
# self.name = name
# self.email = email
# self.created_at = dt.datetime.now()
# def __repr__(self):
# return "<User(name={self.name!r})>".format(self=self)
# class UserSchema(Schema):
# name = fields.Str()
# email = fields.Email()
# created_at = fields.DateTime()
# @post_load
# def make_user(self, data, **kwargs):
# return User(**data)
# user = User("Shivam", "shivamdeopa@gmail.com")
# schema = UserSchema()
# # result = schema.dump(user)
# json_result = schema.dumps(user) #result in json format
# # pprint(json_result)
# user_data = {
# "email": "shivamdeopa@gmail.com",
# "name": "Shivam",
# }
# schema = UserSchema()
# result = schema.load(user_data)
# # pprint(result)
# user1 = User(name="shivam", email="shivam@gmail.com")
# user2 = User(name="satyam", email="satyam@gmail.com")
# users = [user1, user2]
# schema = UserSchema(many=True)
# result = schema.dump(users) # OR UserSchema().dump(users, many=True)
# # pprint(result)
# # invalid_user_data = {
# # "name": 7,
# # "email": "shivam"
# # }
# # try:
# # result = UserSchema().load(invalid_user_data)
# # pprint(result)
# # except ValidationError as err:
# # print(err.messages)
# # print(err.valid_data)
# class bandMemberSchema(Schema):
# name = fields.Str(required=True)
# email = fields.Email()
# user_data = [
# {'name':"shivam", 'email':"shivam@gmail.com"}, #valid data
# {'name':"Satyam", 'email':"satyam"}, #invalid email
# {'email':"sundaram@gmail.com"} #missing name
# ]
# try:
# bandMemberSchema(many=True).load(user_data)
# except ValidationError as err:
# # pprint(err.messages)
class validateDataSchema(Schema):
name = fields.Str(validate=validate.Length(min=4))
age = fields.Int(validate=validate.Range(min=18, max=40))
permission = fields.Str(validate=validate.OneOf(['read','write','admin']), data_key="role")
data= {'name':"shivam", "age":35, "role":"read"}
try:
result = validateDataSchema().load(data)
pprint(result)
except ValidationError as err:
pprint(err.messages)