[python] SQLAlchemy와 데이터베이스 간의 데이터 전송 방법

SQLAlchemy는 파이썬에서 데이터베이스와 상호작용하기 위한 ORM(Object Relational Mapping) 라이브러리입니다. ORM은 객체 지향 프로그래밍 언어와 관계형 데이터베이스 간의 데이터 전송을 쉽게 관리할 수 있도록 도와줍니다. SQLAlchemy를 사용하여 데이터베이스와 데이터를 전송하는 방법에 대해 알아보겠습니다.

1. SQLAlchemy 설치하기

pip install sqlalchemy

SQLAlchemy를 설치하려면 위의 명령어를 사용합니다.

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

from sqlalchemy import create_engine

# 데이터베이스 URL을 설정합니다.
db_url = 'sqlite:///database.db'

# 엔진을 생성합니다.
engine = create_engine(db_url)

# 연결을 테스트합니다.
with engine.connect() as conn:
    result = conn.execute('SELECT 1')
    print(result.scalar())

데이터베이스 연결을 설정하기 위해 create_engine 함수를 사용합니다. 위의 예제에서는 SQLite 데이터베이스를 사용하고 있습니다. 데이터베이스 URL에는 해당 데이터베이스에 대한 정보가 포함되어야 합니다.

3. 데이터베이스 테이블 생성하기

from sqlalchemy import MetaData, Table, Column, Integer, String

# 메타데이터 객체 생성
metadata = MetaData()

# 테이블 정의
users = Table('users', metadata,
    Column('id', Integer, primary_key=True),
    Column('name', String),
    Column('age', Integer)
)

# 테이블 생성
metadata.create_all(engine)

데이터베이스 테이블을 생성하기 위해 SQLAlchemy의 MetaData, Table, Column 등의 클래스를 사용합니다. 위의 예제에서는 users라는 이름의 테이블을 생성하고, 각각 id, name, age 열을 포함하고 있습니다.

4. 데이터 삽입하기

from sqlalchemy import insert

# 데이터 삽입
insert_stmt = insert(users).values(name='John Doe', age=25)
with engine.connect() as conn:
    result = conn.execute(insert_stmt)
    print(result.rowcount)

데이터를 삽입하기 위해서는 SQLAlchemy의 insert 함수를 사용합니다. 위의 예제에서는 users 테이블에 nameage 값을 삽입하고 있습니다.

5. 데이터 조회하기

from sqlalchemy import select

# 데이터 조회
select_stmt = select([users])
with engine.connect() as conn:
    result = conn.execute(select_stmt)
    rows = result.fetchall()
    for row in rows:
        print(row)

데이터를 조회하기 위해서는 SQLAlchemy의 select 함수를 사용합니다. 위의 예제에서는 users 테이블에서 모든 데이터를 조회하고 있습니다.

SQLAlchemy를 사용하여 데이터베이스와 데이터를 전송하는 방법에 대해 알아보았습니다. SQLAlchemy는 다양한 데이터베이스에 대한 지원을 제공하며, 데이터 전송을 더욱 쉽게 관리할 수 있게 해줍니다.

참고 자료