[python] SQLAlchemy의 데이터베이스 연동 방법

SQLAlchemy는 Python에서 사용할 수 있는 강력한 ORM(Object-Relational Mapping) 도구로, 데이터베이스와의 연동을 쉽게 할 수 있습니다. SQLAlchemy를 사용하여 데이터베이스에 연결하고 쿼리를 실행하는 방법에 대해 알아보겠습니다.

1. SQLAlchemy 설치

먼저, SQLAlchemy를 설치해야 합니다. 아래 명령을 사용하여 SQLAlchemy를 설치할 수 있습니다.

pip install SQLAlchemy

2. 데이터베이스 연결 설정

SQLAlchemy를 사용하여 데이터베이스에 연결하기 위해서는 연결설정을 해야 합니다. 데이터베이스 종류에 따라 다른 드라이버가 필요할 수 있습니다. 예를 들어, MySQL 데이터베이스를 사용한다면, MySQL 드라이버를 설치해야 합니다.

from sqlalchemy import create_engine

# MySQL 데이터베이스에 연결
engine = create_engine('mysql+mysqlconnector://<username>:<password>@<host>/<database>')

위 코드에서 <username>, <password>, <host>, <database>는 해당하는 값으로 수정해주어야 합니다.

3. 테이블 정의

데이터베이스와 연결이 완료되면, SQLAlchemy는 테이블과 매핑되는 클래스를 정의할 수 있습니다. 이 클래스는 데이터베이스 테이블과 상호작용하는데 사용됩니다. 예를 들어, users 테이블을 정의하는 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)
    username = Column(String(50))
    email = Column(String(100))

위 코드에서 User 클래스는 users 테이블과 매핑되고, id, username, email 등의 속성을 가지며, 각각 Integer와 String 타입으로 정의되었습니다.

4. 쿼리 실행

데이터베이스 연결과 테이블 정의가 완료되면, SQLAlchemy를 사용하여 쿼리를 실행할 수 있습니다. 예를 들어, 모든 사용자를 검색하는 쿼리를 실행하는 코드는 다음과 같습니다.

from sqlalchemy.orm import sessionmaker

# 세션 만들기
Session = sessionmaker(bind=engine)
session = Session()

# 사용자 검색 쿼리 실행
users = session.query(User).all()

# 결과 출력
for user in users:
    print(f"ID: {user.id}, Username: {user.username}, Email: {user.email}")

위 코드에서 session 객체를 사용하여 쿼리를 실행하고, 결과를 users 변수에 저장한 후, 반복문을 통해 각 사용자의 정보를 출력하고 있습니다.

이와 같이 SQLAlchemy를 사용하여 Python에서 데이터베이스와의 연동을 쉽게 할 수 있습니다. SQLAlchemy에는 다양한 고급 기능도 제공되므로, 필요에 따라 추가적인 학습이 필요할 수 있습니다.

참고 자료