SQLAlchemy ORM-개체 추가

SQLAlchemy ORM의 이전 장에서 매핑을 선언하고 세션을 만드는 방법을 배웠습니다. 이 장에서는 테이블에 객체를 추가하는 방법을 배웁니다.

customers 테이블에 매핑 된 Customer 클래스를 선언했습니다. 이 클래스의 객체를 선언하고 세션 객체의 add () 메소드로 테이블에 지속적으로 추가해야합니다.

c1 = Sales(name = 'Ravi Kumar', address = 'Station Road Nanded', email = '[email protected]')
session.add(c1)

이 트랜잭션은 commit () 메서드를 사용하여 동일한 트랜잭션이 플러시 될 때까지 보류 중입니다.

session.commit()

다음은 고객 테이블에 레코드를 추가하는 완전한 스크립트입니다-

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 = '[email protected]')

session.add(c1)
session.commit()

여러 레코드를 추가하려면 다음을 사용할 수 있습니다. add_all() 세션 클래스의 메서드.

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

session.commit()

SQLiteStudio의 테이블보기는 레코드가 고객 테이블에 지속적으로 추가되었음을 보여줍니다. 다음 이미지는 결과를 보여줍니다-