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

Python中使用sqlalchemy.orm.session实现数据库的增删改查操作

发布时间:2023-12-28 05:41:25

SQLAlchemy是一个Python的SQL工具包和对象关系映射(ORM)库。它提供了一组简单的API,可以方便地与数据库交互,进行增删改查等操作。

首先,我们需要先安装SQLAlchemy库,可以使用pip来进行安装:

pip install sqlalchemy

然后,我们需要导入相关的模块和类:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

接下来,我们需要创建一个数据库连接引擎,用于连接到数据库。可以使用如下代码:

engine = create_engine('数据库URL')

其中,数据库URL的格式也可以是各种不同的格式,例如MySQL的URL为:mysql://username:password@host:port/database;SQLite的URL为:sqlite:///database.db。

然后,我们需要定义一个会话类并进行Session绑定:

Session = sessionmaker(bind=engine)
session = Session()

这样,我们就创建了一个数据库会话session对象,可以用来进行数据库的增删改查操作。

下面,我们可以定义一个数据表的模型类:

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    age = Column(Integer)

其中,Base是declarative_base()函数返回的基类,可以根据这个基类来定义数据表的模型类。

然后,我们可以使用定义好的模型类来创建数据表:

Base.metadata.create_all(engine)

这样,就会根据定义好的模型类来创建名为users的数据表。

接下来,我们就可以进行数据库的增删改查操作了。

首先,我们可以插入数据:

user = User(name='Alice', age=18)
session.add(user)
session.commit()

这样,就会将一个用户插入到users表中。

然后,我们可以查询数据:

users = session.query(User).all()
for user in users:
    print(user.name, user.age)

这样,就会查询出所有的用户,并打印出姓名和年龄。

我们也可以根据条件进行查询:

user = session.query(User).filter(User.name == 'Alice').first()
print(user.name, user.age)

这样,就会查询出姓名为Alice的用户,并打印出姓名和年龄。

接下来,我们可以更新数据:

user.name = 'Bob'
session.commit()

这样,就会将用户的姓名更新为Bob。

最后,我们可以删除数据:

session.delete(user)
session.commit()

这样,就会将用户从数据库中删除。

以上就演示了如何使用SQLAlchemy的session对象进行数据库的增删改查操作。有了这些基本的操作,我们就可以方便地进行数据库的操作了。