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)를 참고하시기 바랍니다.