[python] SQLAlchemy와 SQLite 데이터베이스 연동

SQLAlchemy는 파이썬에서 데이터베이스를 다루기 위한 인기있는 ORM(Object-Relational Mapping) 라이브러리입니다. SQLite는 경량의 오픈소스 데이터베이스 엔진으로, 파일 형태로 데이터를 저장하고 관리할 수 있습니다. 이번 글에서는 SQLAlchemy를 사용하여 SQLite 데이터베이스와 연동하는 방법에 대해 알아보겠습니다.

1. SQLAlchemy 설치

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

pip install sqlalchemy

2. SQLite 데이터베이스 생성

SQLite 데이터베이스를 생성하려면 create_engine() 함수를 사용해야 합니다. 다음 코드는 “database.db”라는 SQLite 데이터베이스를 생성합니다.

from sqlalchemy import create_engine

engine = create_engine('sqlite:///database.db', echo=True)

위 예제에서 echo=True는 SQLAlchemy의 출력을 활성화하는 역할을 합니다. 필요에 따라 값을 변경할 수 있습니다.

3. 테이블 생성

SQLite 데이터베이스에 테이블을 생성하려면 SQLAlchemy의 MetaData 클래스와 Table 클래스를 사용해야 합니다. 다음 코드는 “users”라는 테이블을 생성하는 예제입니다.

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)

위 예제에서 Column 클래스를 사용하여 각 열(column)의 속성을 정의하고, Table 클래스로 테이블을 생성합니다. MetaData 클래스는 데이터베이스 스키마의 정보를 저장하는 역할을 합니다.

4. 데이터 삽입

SQLite 데이터베이스에 데이터를 삽입하려면 insert() 함수를 사용해야 합니다. 다음 코드는 “users” 테이블에 데이터를 삽입하는 예제입니다.

from sqlalchemy import insert

ins = users.insert().values(name='John Doe', age=30)

conn = engine.connect()
conn.execute(ins)
conn.close()

위 예제에서 insert() 함수를 사용하여 삽입 작업을 생성하고, execute() 함수를 사용하여 작업을 실행합니다.

5. 데이터 조회

SQLite 데이터베이스에서 데이터를 조회하려면 select() 함수를 사용해야 합니다. 다음 코드는 “users” 테이블의 모든 데이터를 조회하는 예제입니다.

from sqlalchemy import select

sel = select([users])

conn = engine.connect()
result = conn.execute(sel)

for row in result:
    print(row)

conn.close()

위 예제에서 select() 함수를 사용하여 조회 작업을 생성하고, execute() 함수를 사용하여 작업을 실행합니다. 결과는 result 변수에 저장되며, for 루프를 사용하여 각 행(row)을 순회하고 출력합니다.

결론

SQLAlchemy를 사용하여 SQLite 데이터베이스와 연동하는 방법을 알아보았습니다. SQLAlchemy를 통해 파이썬에서 간편하게 데이터베이스 작업을 수행할 수 있으며, SQLite를 사용하는 경우에도 동일한 방식으로 연동할 수 있습니다. SQLAlchemy의 다양한 기능을 활용하여 데이터베이스 애플리케이션을 개발해보세요.

참고 자료