모바일 애플리케이션을 개발할 때 데이터베이스를 사용해야 하는 경우가 많습니다. 이때 Peewee는 Python에서 사용할 수 있는 가벼운 ORM(Object-Relational Mapping) 라이브러리입니다. Peewee를 사용하면 SQL 쿼리를 직접 작성하지 않고도 Python 코드를 통해 데이터베이스를 조작할 수 있습니다. 이번 포스트에서는 Peewee를 사용하여 모바일 애플리케이션을 개발하는 방법에 대해 알아보겠습니다.
1. Peewee 설치하기
Peewee를 사용하기 위해서는 먼저 Peewee를 설치해야 합니다. 다음 명령을 사용하여 Peewee를 설치할 수 있습니다:
pip install peewee
2. 데이터베이스 연결 설정하기
Peewee를 사용하기 위해서는 우선 데이터베이스에 연결해야 합니다. 다음은 SQLite 데이터베이스에 연결하는 예제입니다:
from peewee import *
database = SqliteDatabase('my_app.db') # 데이터베이스 파일명을 설정합니다
class BaseModel(Model):
class Meta:
database = database
# 모델 클래스를 정의합니다
class User(BaseModel):
name = CharField()
email = CharField(unique=True)
# 데이터베이스에 연결합니다
database.connect()
database.create_tables([User]) # 필요한 테이블을 생성합니다
위 예제에서는 my_app.db
라는 SQLite 데이터베이스 파일을 생성하고, User
모델 클래스를 정의하였습니다.
3. 데이터베이스 조작하기
Peewee를 사용하면 Python 코드를 통해 데이터베이스를 조작할 수 있습니다. 예를 들어, 사용자를 추가하거나 조회하는 코드는 다음과 같습니다:
# 사용자 추가
user = User(name='John', email='john@example.com')
user.save()
# 사용자 조회
users = User.select()
for user in users:
print(user.name, user.email)
위 코드에서는 User
모델을 사용하여 사용자를 추가하고 모든 사용자를 조회하는 예제를 보여주었습니다.
4. 쿼리 작성하기
Peewee에서는 강력한 쿼리 작성 기능을 제공합니다. 예를 들어, 특정 조건을 가진 사용자를 조회하는 코드는 다음과 같습니다:
# 이름이 'John'인 사용자 조회
users = User.select().where(User.name == 'John')
# 이메일이 'example.com'으로 끝나는 사용자 조회
users = User.select().where(User.email.endswith('@example.com'))
# 이름이 'John'이거나 이메일이 'example.com'으로 끝나는 사용자 조회
users = User.select().where((User.name == 'John') | (User.email.endswith('@example.com')))
위 코드에서는 User
모델을 사용하여 조건에 맞는 사용자를 조회하는 예제를 보여주었습니다.
5. Peewee의 기능 확장하기
Peewee는 강력한 기능 확장 기능을 제공하여 개발자가 필요에 맞게 확장할 수 있습니다. 예를 들어, Peewee의 Field
클래스를 상속받아 새로운 필드 타입을 정의할 수 있습니다.
from peewee import *
class EnumField(Field):
def __init__(self, choices, *args, **kwargs):
self.choices = choices
super().__init__(*args, **kwargs)
def get_db_type(self):
return 'ENUM({})'.format(','.join(["'{}'".format(choice) for choice in self.choices]))
위 코드에서는 EnumField
라는 새로운 필드 타입을 정의하였습니다.
결론
이렇게 Peewee를 사용하여 모바일 애플리케이션을 개발하는 방법에 대해 알아보았습니다. Peewee는 가벼우면서도 강력한 ORM 라이브러리로서 데이터베이스 작업을 간편하게 처리할 수 있습니다. Peewee의 다양한 기능을 활용하여 효율적인 모바일 애플리케이션을 개발해 보세요.