45 lines
1.3 KiB
Python
45 lines
1.3 KiB
Python
from base import db
|
|
from enum import Enum
|
|
|
|
|
|
class Person(db.Model):
|
|
__tablename__ = 'faker_person'
|
|
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
|
|
name = db.Column(db.String(10), nullable=False)
|
|
sex = db.Column(db.SMALLINT, nullable=False)
|
|
age = db.Column(db.Integer, nullable=False)
|
|
address = db.Column(db.String(20), nullable=False)
|
|
identification = db.Column(db.String(18), nullable=False)
|
|
phone = db.Column(db.String(20), nullable=False)
|
|
|
|
@classmethod
|
|
def __from_dict__(cls, **data: dict):
|
|
obj = cls()
|
|
obj.__dict__.update(data)
|
|
return obj
|
|
|
|
def __to_dict__(self):
|
|
return {c.name: str(getattr(self, c.name)) for c in self.__table__.columns}
|
|
|
|
|
|
class SexEnum(Enum):
|
|
FEMALE = 0, '女'
|
|
MALE = 1, '男'
|
|
|
|
def __new__(cls, *values):
|
|
obj = object.__new__(cls)
|
|
# first value is canonical value
|
|
obj._value_ = values[0]
|
|
for other_value in values[1:]:
|
|
cls._value2member_map_[other_value] = obj
|
|
obj._all_values = values
|
|
obj.sex = values[1]
|
|
return obj
|
|
|
|
def __repr__(self):
|
|
return '<%s.%s: %s>' % (
|
|
self.__class__.__name__,
|
|
self._name_,
|
|
', '.join([repr(v) for v in self._all_values]),
|
|
)
|