📜  如何在Python中更新 SQLAlchemy 中的现有表行?(1)

📅  最后修改于: 2023-12-03 14:52:50.583000             🧑  作者: Mango

如何在Python中更新 SQLAlchemy 中的现有表行?

在开发Web应用程序时,通常需要对数据库进行更改。SQLAlchemy库提供了一种在Python中轻松管理数据库的方法。在这篇文章中,我们将探讨如何使用SQLAlchemy更新现有表的行。

前提条件

在开始更新表行之前,您应该是已经创建了一个表,并在其中插入了一些数据。此外,您需要在Python中安装SQLAlchemy库和相应的驱动程序。

更新数据库表行的步骤

更新数据库表行的步骤大致如下:

  1. 定义数据库表结构
  2. 建立数据库连接
  3. 查询要更新的行
  4. 更新行
  5. 提交更改
1. 定义数据库表结构

首先,我们需要定义数据库表的结构。这可以通过类来完成。下面是一个示例类,表示一个students表:

from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
 
Base = declarative_base()
 
class Student(Base):
    __tablename__ = 'students'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    gender = Column(String)

这个类有4个属性:idnameagegender。它们分别对应于students表中的4个列。__tablename__属性用于指定表名。

2. 建立数据库连接

在更新表行之前,我们需要建立到数据库的连接。这可以通过以下语句完成:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
 
engine = create_engine('数据库连接字符串')
Session = sessionmaker(bind=engine)
session = Session()

将上面$数据库连接字符串$替换为您的数据库连接串。

3. 查询要更新的行

接下来,我们需要查询要更新的行。这可以通过以下语句完成:

student = session.query(Student).filter_by(name='John').first()

这个语句将从students表中选择名字是John的第一行。

4. 更新行

在查询到要更新的行后,我们可以更新它的属性。

student.age = 25
5. 提交更改

最后,我们需要提交更改以保存到数据库中。

session.commit()
完整示例代码
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import sessionmaker
 
Base = declarative_base()
 
class Student(Base):
    __tablename__ = 'students'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    gender = Column(String)

engine = create_engine('数据库连接字符串')
Base.metadata.create_all(engine)
 
Session = sessionmaker(bind=engine)
session = Session()
 
student = session.query(Student).filter_by(name='John').first()
student.age = 25
 
session.commit()

以上就是如何使用SQLAlchemy在Python中更新现有数据库表行的示例。