SQL语句ORM
class Model class(type):
def __new__(cls, name, s, attrs):
mappings = dict()
for k, v in attrs.items():
if isinstance(v, tuple):
mappings[k] = v
for k in mappings.keys():
attrs.pop(k)
attrs[\'__mappings__\'] = mappings
attrs[\'__table__\'] = name
return type.__new__(cls, name, s, attrs)
class User( class=Model class):
uid = (\'uid\', \"int unsigned\")
name = (\'username\', \"varchar(30)\")
email = (\'email\', \"varchar(30)\")
password = (\'password\', \"varchar(30)\")
def __init__(self, **kwargs):
for name, value in kwargs.items():
setattr(self, name, value)
def save(self):
fields = []
args = []
for k, v in self.__mappings__.items():
fields.append(v[0])
args.append(getattr(self, k, None))
sql = \'insert into %s (%s) values (%s)\' % (self.__table__, \',\'.join(fields), \',\'.join([str(i) for i in args]))
print(\'SQL: %s\' % sql)
u = User(uid=12345, name=\'Michael\', email=\'test@orm.org\', password=\'my-pwd\')
u.save()