先把ORM说清楚比较容易理解
Topic source复制错了,我本来是想写这个。
# coding:UTF-8
class User(object):
# 表名
__table__ = "u_user"
# 成员变量和表字段映射
__mappings__ = {
"id": "u_id",
"username": "u_username",
"password": "u_password"
}
def __init__(self, id, username, password):
self.id = id
self.username = username
self.password = password
def save(self):
# 拼接sql
fields = []
places = []
values = []
for key, value in self.__mappings__.items():
fields.append("`%s`" % str(value))
# places.append("%s")
places.append("%(" + "%s" % key + ")s")
values.append(getattr(self, key))
sql = "insert into `%s` (%s) values (%s)" % (self.__table__, ", ".join(fields), ", ".join(places))
arg = tuple(values)
print(sql)
print(arg)
if __name__ == '__main__':
user = User(id=1, username="jack", password="12345678")
user.save()
- 1
AmericanRedPomelo
ORM:对象关系映射,最重要的就是记录表名和类名的映射关系,表字段和实例对象属性之间的映射关系,拼接sql时根据映射关系才能知道哪个字段对应哪个值,元类作用只是用来抽取父类,写通用代码的,用装饰器也能做到同样功能