pip install colander
python
import colander
class User(colander.MappingSchema):
username = colander.SchemaNode(colander.String())
email = colander.SchemaNode(colander.String(), validator=colander.Email())
password = colander.SchemaNode(colander.String())
python
from sqlalchemy import Column, String
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
class UserModel(Base):
__tablename__ = 'users'
id = Column(String, primary_key=True)
username = Column(String)
email = Column(String)
password = Column(String)
python
def colander_to_db(user_model, colander_model):
user = user_model()
for node in colander_model.children:
setattr(user, node.name, None)
return user
python
import colander
def validate_user(user_data):
schema = User()
validated = schema.deserialize(user_data)
return validated
def serialize_user(user_data):
schema = User()
serialized = schema.serialize(user_data)
return serialized