📜  self.new_from_db (1)

📅  最后修改于: 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 对象列表