📜  SQLAlchemy ORM – 添加对象(1)

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

SQLAlchemy ORM – 添加对象

SQLAlchemy是一个流行的Python ORM库,它使得数据库操作变得简单而直观,让开发人员可以更专注于业务逻辑而非与数据库的交互。

添加对象是SQLAlchemy中最基本的操作之一,这篇文章将向您介绍如何用SQLAlchemy添加对象。我们会从创建模型开始,一直到将模型保存到数据库。

创建模型

在开始添加对象之前,我们需要创建一个模型。在SQLAlchemy中,每个模型都必须继承Base类并包含一些列属性。

以下是一个简单的User模型示例:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)

在此示例中,我们定义了一个User模型,它包含id、name和age三个属性,并将其存储在名为“users”的表中。

创建会话

要将模型保存到数据库,我们需要先创建一个SQLAlchemy会话。会话提供了一个与数据库的交互环境。

以下是一个简单的会话示例:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()

在此示例中,我们使用create_engine函数创建了一个SQLite引擎,并使用sessionmaker类创建了一个会话。最后,我们使用session变量创建了一个会话实例。

添加新对象

有了模型和会话,我们可以开始添加新对象了。

以下是一个简单的添加对象示例:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from models import User

engine = create_engine('sqlite:///example.db')
Session = sessionmaker(bind=engine)
session = Session()

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

在此示例中,我们使用User模型创建了一个新的User对象,并将其添加到会话中,然后将更改提交到数据库。一旦提交,新的User对象将被存储在数据库中。

注意事项
  • 一旦提交更改,对象将存储在数据库中;如果想要撤销更改,则必须调用session.rollback()函数。
  • 如果需要添加多个对象,请使用session.add_all()函数,而不是重复调用session.add()函数。
  • 在添加对象时,不需要指定id属性。SQLAlchemy将自动为我们处理。
结论

在本指南中,我们向您介绍了如何使用SQLAlchemy ORM添加对象。我们已经了解了如何创建模型、创建会话、添加新对象并将更改提交到数据库。这是SQLAlchemy ORM的一个基本操作,它可以大大简化与数据库的交互,从而让您更专注于业务逻辑的开发。