使用 SQLAlchemy 进行 ORM 映射

2023-04-05 00:00:00 sqlalchemy orm 映射

SQLAlchemy 是 Python 中最流行的 ORM 框架之一,它提供了一种将 Python 对象映射到数据库表的方法,使得开发者可以使用 Python 代码来操作数据库,而无需编写 SQL 语句。

下面是一个使用 SQLAlchemy 进行 ORM 映射的示例代码:

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base

# 创建 engine
engine = create_engine('postgresql://username:password@localhost:5432/mydatabase')

# 创建 session
Session = sessionmaker(bind=engine)
session = Session()

# 创建 Base 对象
Base = declarative_base()

# 创建一个 User 类,用于映射 users 数据表
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)
    email = Column(String)

# 创建表
Base.metadata.create_all(engine)

# 添加数据
user = User(name='pidancode', email='pidancode@example.com')
session.add(user)
session.commit()

# 查询数据
users = session.query(User).all()
for user in users:
    print(user.id, user.name, user.email)

# 修改数据
user = session.query(User).filter(User.name=='pidancode').first()
user.email = 'pidancode@gmail.com'
session.commit()

# 删除数据
user = session.query(User).filter(User.name=='pidancode').first()
session.delete(user)
session.commit()

# 关闭 session
session.close()

上面的代码中,我们通过 SQLAlchemy 创建了一个 user 类来映射数据库中的 users 表。通过 session 来操作数据库,例如添加数据、查询数据、修改数据和删除数据等操作。最后记得关闭 session。

需要注意的是,该示例代码是使用 PostgreSQL 数据库作为示例的,但你可以按照你的需要替换为你自己的数据库,例如 MySQL 或 SQLite 等。

此外,示例中 User 类中的字段使用了 name 和 email 作为字段名,但请注意,在实际使用时需要根据数据库表结构来命名字段。

相关文章