欢迎访问宙启技术站
智能推送

Python中利用BaseModel()实现数据库连接及查询操作

发布时间:2024-01-12 15:35:06

在Python中,我们可以使用Peewee库来连接数据库并进行查询操作。Peewee是一个简单、轻量级的ORM(对象关系映射)库,它提供了一个类似于SQLAlchemy的接口,可以方便地与不同的关系型数据库进行交互。

首先,我们需要安装Peewee库。可以使用pip命令来安装:

pip install peewee

安装完成后,我们可以引入Peewee库并连接到数据库。Peewee提供了一个BaseModel类,我们可以继承它来定义我们的模型类。

以下是一个使用SQLite数据库的示例:

from peewee import *

# 连接到SQLite数据库
db = SqliteDatabase('my_database.db')


class BaseModel(Model):
    class Meta:
        database = db


class User(BaseModel):
    username = CharField()
    password = CharField()


# 创建表
with db:
    db.create_tables([User])


# 插入数据
user = User(username='Alice', password='password123')
user.save()


# 查询数据
users = User.select()
for user in users:
    print(user.username)

在上面的例子中,我们首先创建一个BaseModel类,并设置其Meta内部类的database属性,指定数据库连接。然后,我们可以创建一个模型类User,该模型类继承自BaseModel,并定义了两个字段usernamepassword

接下来,我们使用db.create_tables方法创建了一个名为User的表。然后,我们创建了一个新的用户实例,并调用save方法将其保存到数据库中。

最后,我们使用User.select()方法查询了所有的用户,并使用for循环将其打印出来。

除了简单的查询,Peewee还提供了更复杂的查询操作,如过滤、排序、聚合等。以下是一些常见的查询示例:

# 过滤查询
users = User.select().where(User.username == 'Alice')

# 排序查询
users = User.select().order_by(User.username.asc())

# 分页查询
users = User.select().paginate(1, 10)

# 统计查询
count = User.select().count()

上述示例中,where方法用于过滤查询结果,order_by方法用于排序查询结果,paginate方法用于分页查询结果,count方法用于统计查询结果。

总之,使用Peewee库可以方便地连接数据库并执行查询操作。在使用Peewee时,我们需要先定义模型类,然后通过模型类来进行数据库操作。Peewee提供了丰富的方法和语法来完成各种查询需求,同时也支持多种关系型数据库。