본문 바로가기
Python

ORM 방식으로 db에 데이터 추가하

by 앗사비 2023. 12. 15.
728x90
# db_connect.py
from sqlalchemy import create_engine


def get_db_engine():
    # 데이터베이스 연결 설정
    engine = create_engine(
        "postgresql://postgres:pw@test.com:5432/db"
    )
    return engine

 

 

# main.py

from sqlalchemy import Column, String
from sqlalchemy.orm import sessionmaker, declarative_base
from db_connect import get_db_engine

# DB 연결 엔진 가져오기
engine = get_db_engine()

# sessionmaker : 필수는 아니지만 관리상 권장
Session = sessionmaker(bind=engine)

# declarative_base : 필수는 아니지만 관리상 권장
# Base를 상속받은 자식 클래스들은 모두 테이블과 매핑되는 클래스로 인식
Base = declarative_base()


# 현재 db에 있는 User 모델 정의
class User(Base):
    __tablename__ = "users"
    user_id = Column(String, primary_key=True, unique=True)
    name = Column(String)


# 유저 추가하기 (begin() 사용시 자동 커밋)
with Session.begin() as session:
    user = User(user_id="test_user", name="test_name")
    session.add(user)

 

 

참고

https://miintto.github.io/docs/python-sqlalchemy-session
https://jammdev.tistory.com/186

728x90