[python] SQLAlchemy로 작성된 실제 예제를 알려주세요.
먼저, SQLAlchemy를 설치해야 합니다. 터미널에서 다음 명령을 실행하여 설치할 수 있습니다:
pip install sqlalchemy
이제 예제 코드를 작성해보겠습니다. 다음은 간단한 블로그 포스트를 나타내는 Post
모델을 정의하는 코드입니다:
from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base
# 데이터베이스 연결 설정
engine = create_engine('sqlite:///blog.db', echo=True)
Base = declarative_base()
# Post 모델 정의
class Post(Base):
__tablename__ = 'posts'
id = Column(Integer, primary_key=True)
title = Column(String)
content = Column(String)
def __repr__(self):
return f"<Post(title='{self.title}', content='{self.content}')>"
# 데이터베이스에 테이블 생성
Base.metadata.create_all(engine)
위의 코드에서는 create_engine
함수로 SQLite 데이터베이스 연결을 설정하고, Base
클래스로 모델을 선언합니다. Post
클래스는 Base
클래스를 상속받아 테이블에 매핑될 컬럼들을 정의합니다.
이제 데이터를 생성하고 조회하는 예제를 살펴보겠습니다:
from sqlalchemy.orm import sessionmaker
# 세션 생성
Session = sessionmaker(bind=engine)
session = Session()
# 포스트 생성
post1 = Post(title='첫 번째 포스트', content='안녕하세요! 첫 번째 포스트입니다.')
post2 = Post(title='두 번째 포스트', content='안녕하세요! 두 번째 포스트입니다.')
# 데이터베이스에 저장
session.add(post1)
session.add(post2)
session.commit()
# 모든 포스트 조회
posts = session.query(Post).all()
for post in posts:
print(post)
# 특정 포스트 조회
post = session.query(Post).filter_by(title='첫 번째 포스트').first()
print(post)
# 세션 닫기
session.close()
위의 코드에서는 sessionmaker
함수를 사용하여 데이터베이스 세션을 생성하고, session
객체를 통해 데이터베이스 작업을 수행합니다. add
메서드로 포스트를 데이터베이스에 저장하고, commit
메서드로 작업을 확정합니다. query
메서드를 사용하여 데이터를 조회할 수 있으며, filter_by
메서드를 통해 특정 조건에 맞는 데이터를 조회할 수도 있습니다.
이상으로 SQLAlchemy를 사용하여 데이터베이스와 상호작용하는 간단한 예제를 살펴보았습니다. SQLAlchemy는 복잡한 데이터베이스 작업을 쉽게 처리할 수 있는 강력한 도구이며, 더 다양한 기능과 사용 방법을 알고 싶다면 SQLAlchemy 공식 문서를 참고하시기 바랍니다.
참고 문서: SQLAlchemy 공식 문서