[파이썬] Peewee 데이터 삽입 방법

소개

Peewee는 Python에서 작동하는 간단하고 가벼운 ORM(Object-Relational Mapping) 라이브러리입니다. Peewee는 SQLite, MySQL, PostgreSQL 등 다양한 데이터베이스를 지원하며, Python 객체와 데이터베이스 간의 상호 작용을 용이하게 해줍니다. 이번 글에서는 Peewee를 사용하여 데이터를 삽입하는 방법을 알아보겠습니다.

데이터베이스 연결

Peewee를 사용하기 위해서는 먼저 데이터베이스에 연결해야 합니다. 이를 위해 Peewee는 다양한 데이터베이스 엔진을 지원하며 해당 엔진에 따라 필요한 드라이버를 설치해야 합니다.

from peewee import *

# SQLite의 경우
sqlite_db = SqliteDatabase('mydatabase.db')

# MySQL의 경우
mysql_db = MySQLDatabase('mydatabase', user='myuser', password='mypassword',
                         host='localhost', port=3306)

# PostgreSQL의 경우
postgres_db = PostgresqlDatabase('mydatabase', user='myuser', password='mypassword',
                                 host='localhost', port=5432)

모델 정의

Peewee를 사용하여 데이터를 삽입하려면 먼저 데이터 모델을 정의해야 합니다. 데이터 모델은 데이터베이스 테이블과 매핑되는 Python 클래스입니다. 각 필드는 데이터베이스 컬럼에 해당하며, Peewee의 Field 클래스를 사용하여 정의할 수 있습니다.

from peewee import *

class Person(Model):
    name = CharField()
    age = IntegerField()
    email = CharField(unique=True)

    class Meta:
        database = sqlite_db  # 연결한 데이터베이스 객체 지정

데이터 삽입

데이터 모델을 정의한 후에는 Peewee를 사용하여 실제로 데이터를 삽입할 수 있습니다. 데이터를 삽입하기 위해서는 모델 객체를 생성하고 필드에 값을 할당한 다음 save() 메소드를 호출하면 됩니다.

# 데이터 삽입
person = Person(name='John', age=25, email='john@example.com')
person.save()

예외 처리

Peewee는 데이터 삽입 중에 발생할 수 있는 예외를 처리하는 기능도 제공합니다. 예를 들어, 유일한(unique)한 필드에 중복된 값을 삽입하려고 할 때 peewee.IntegrityError 예외가 발생합니다. 이 예외를 잡아서 적절한 에러 핸들링 로직을 추가할 수 있습니다.

from peewee import IntegrityError

try:
    person = Person(name='John', age=25, email='john@example.com')
    person.save()
except IntegrityError:
    print("Email address already exists!")

결론

Peewee를 사용하여 Python에서 데이터를 삽입하는 방법을 알아보았습니다. 데이터베이스 연결 및 모델 정의 후에는 간단한 코드 몇 줄로 데이터를 쉽게 삽입할 수 있습니다. Peewee의 다양한 기능을 활용하면 데이터베이스 작업을 효율적으로 처리할 수 있으며, 이를 통해 애플리케이션 개발을 더욱 용이하게 만들 수 있습니다.