[파이썬] Peewee 데이터 검증 및 저장

Peewee는 Python에서 작동하는 경량 ORM(Object-Relational Mapping) 라이브러리로, 데이터베이스와의 상호 작용을 쉽게 처리할 수 있도록 도와줍니다. 이 블로그 포스트에서는 Peewee를 사용하여 데이터를 검증하고 저장하는 방법에 대해 설명하겠습니다.

데이터 모델 정의하기

처음으로 해야 할 일은 데이터 모델을 정의하는 것입니다. 데이터 모델은 데이터베이스의 테이블과 필드를 나타내는 클래스로 구성됩니다. 예를 들어, 사용자 정보를 저장하는 User 모델을 정의해 보겠습니다.

from peewee import *

db = SqliteDatabase('users.db')

class User(Model):
    username = CharField(unique=True)
    password = CharField()
    email = CharField()

    class Meta:
        database = db

위의 코드에서는 User 클래스가 Model 클래스를 상속받고 있습니다. Model 클래스는 Peewee에서 제공하는 기본 모델로, db 변수를 통해 데이터베이스와 연결됩니다. User 클래스에는 username, password, email 세 가지 필드가 있습니다.

데이터 검증하기

Peewee는 데이터를 검증하기 위한 다양한 기능을 제공합니다. 이를 활용하여 입력된 데이터가 정상적인지 확인할 수 있습니다. 예를 들어, username 필드는 고유해야 하며, password 필드는 최소 6자리여야 한다고 가정해 보겠습니다.

def validate_user_data(username, password):
    valid = True
    if len(password) < 6:
        valid = False
        print("Password must be at least 6 characters long.")
    try:
        User.select().where(User.username == username).get()
        valid = False
        print("Username already exists.")
    except User.DoesNotExist:
        pass
    return valid

위의 코드에서는 입력된 password가 6자리보다 작으면 유효하지 않다고 판단합니다. 또한, 입력된 username이 이미 존재하는지 확인하기 위해 User.select().where(User.username == username).get() 쿼리를 실행합니다.

데이터 저장하기

데이터를 검증한 후에는 올바른 값인지 확인하고 데이터베이스에 저장할 수 있습니다. 아래 예제는 검증된 데이터를 사용하여 새 사용자를 생성하고 데이터베이스에 저장하는 방법을 보여줍니다.

def create_user(username, password, email):
    if validate_user_data(username, password):
        user = User(username=username, password=password, email=email)
        user.save()
        print("User created successfully!")

위의 코드에서는 validate_user_data 함수를 사용하여 데이터를 검증하고, 유효한 데이터인 경우 User 모델의 인스턴스를 생성하고 save() 메서드를 사용하여 데이터를 데이터베이스에 저장합니다.

마무리

Peewee를 사용하면 데이터베이스와의 상호작용을 쉽게 처리할 수 있습니다. 데이터를 검증하고 저장하는 방법에 대해 알아보았는데, 데이터 처리를 더욱 유연하게 할 수 있는 다양한 Peewee 기능을 활용할 수 있습니다.

Peewee의 자세한 사용법은 공식 문서(https://docs.peewee-orm.com)를 참고하시기 바랍니다.