SQLAlchemy ORM - 新增物件



在 SQLAlchemy ORM 的前幾章中,我們學習瞭如何宣告對映和建立會話。在本章中,我們將學習如何向表中新增物件。

我們聲明瞭已對映到 customers 表的 Customer 類。我們必須宣告此類的物件並透過會話物件的 add() 方法將該物件永久新增到表中。

c1 = Sales(name = 'Ravi Kumar', address = 'Station Road Nanded', email = 'ravi@gmail.com')
session.add(c1)

請注意,此事務是掛起的,直到使用 commit() 方法重新整理事務。

session.commit()

以下是將在 customers 表中新增記錄的完整指令碼 −

from sqlalchemy import Column, Integer, String
from sqlalchemy import create_engine
engine = create_engine('sqlite:///sales.db', echo = True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()

class Customers(Base):
   __tablename__ = 'customers'
   
   id = Column(Integer, primary_key=True)
   name = Column(String)
   address = Column(String)
   email = Column(String)
   
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind = engine)
session = Session()

c1 = Customers(name = 'Ravi Kumar', address = 'Station Road Nanded', email = 'ravi@gmail.com')

session.add(c1)
session.commit()

要新增多條記錄,我們可以使用會話類的 add_all() 方法。

session.add_all([
   Customers(name = 'Komal Pande', address = 'Koti, Hyderabad', email = 'komal@gmail.com'), 
   Customers(name = 'Rajender Nath', address = 'Sector 40, Gurgaon', email = 'nath@gmail.com'), 
   Customers(name = 'S.M.Krishna', address = 'Budhwar Peth, Pune', email = 'smk@gmail.com')]
)

session.commit()

SQLiteStudio 的表檢視顯示記錄已永久新增到 customers 表中。下圖顯示了結果 −

Customers Table Records Added
廣告
© . All rights reserved.