📅  最后修改于: 2023-12-03 15:05:09.168000             🧑  作者: Mango
self.new_from_db
方法介绍self.new_from_db
是一个方法,用于从数据库中获取数据并将其转换为 Python 对象。这个方法通常与数据库操作相关的类中使用,比如 ORM 框架或数据库连接库等。
def new_from_db(cls, db_row):
cls
: 类对象db_row
: 数据库行数据,通常是一个 Tuple 或 List。返回一个新的 Python 对象,通常是数据库表对应的模型对象。
@classmethod
def new_from_db(cls, db_row):
# 解析数据库行数据
id, name, age, sex = db_row
# 创建新的 Python 对象
obj = cls(id=id, name=name, age=age, sex=sex)
# 返回新创建的对象
return obj
class User:
def __init__(self, id, name, age, sex):
self.id = id
self.name = name
self.age = age
self.sex = sex
@classmethod
def new_from_db(cls, db_row):
id, name, age, sex = db_row
obj = cls(id=id, name=name, age=age, sex=sex)
return obj
def get_users_from_db(conn, query):
cursor = conn.cursor()
cursor.execute(query)
# 从数据库中获取行数据
rows = cursor.fetchall()
cursor.close()
# 解析并创建新的 User 实例
return [User.new_from_db(row) for row in rows]
# 使用示例
conn = sqlite3.connect('example.db')
query = 'SELECT id, name, age, sex FROM users'
users = get_users_from_db(conn, query)
conn.close()
# 返回值为 User 对象列表