[python] Peewee에서 데이터 조회하기

Peewee는 파이썬의 간단하고 가벼운 ORM(Object-Relational Mapping) 라이브러리입니다. 이를 사용하면 SQL 쿼리를 작성하지 않고도 데이터베이스와 상호 작용할 수 있습니다. 이번 블로그 포스트에서는 Peewee를 사용하여 데이터를 조회하는 방법을 알아보겠습니다.

데이터베이스 연결 설정하기

Peewee를 사용하기 위해 먼저 데이터베이스에 연결해야 합니다. 연결 설정은 데이터베이스 종류에 따라 다르지만, 일반적으로 다음과 같은 형식을 따릅니다.

from peewee import *

db = SqliteDatabase('my_database.db') # 데이터베이스 파일명

class BaseModel(Model):
    class Meta:
        database = db

# 필요한 모델 정의
class User(BaseModel):
    name = CharField()
    email = CharField()

데이터 조회하기

Peewee에서 데이터 조회는 select() 메서드를 사용하여 쿼리를 작성합니다. select() 메서드는 필요한 필드를 선택하고, 조건을 지정할 수 있습니다. 다음은 Peewee를 사용하여 User 모델의 모든 데이터를 조회하는 예제입니다.

users = User.select()  # User 모델의 모든 데이터 조회

for user in users:
    print(user.name, user.email)

조건을 지정하여 특정 데이터만 가져올 수도 있습니다. 다음 예제는 이메일이 “example@example.com”인 사용자 정보를 가져오는 방법을 보여줍니다.

users = User.select().where(User.email == "example@example.com")

for user in users:
    print(user.name, user.email)

정렬하기

Peewee에서 데이터를 정렬하려면 order_by() 메서드를 사용합니다. 다음은 User 모델을 이름으로 정렬한 예제입니다.

users = User.select().order_by(User.name)

for user in users:
    print(user.name, user.email)

제한하기

Peewee에서 데이터를 제한하려면 limit() 메서드를 사용합니다. 다음 예제는 User 모델에서 처음 10개의 데이터만 가져오는 방법을 보여줍니다.

users = User.select().limit(10)

for user in users:
    print(user.name, user.email)

결과 필터링하기

Peewee에서 쿼리 결과를 추가로 필터링하려면 where() 메서드를 사용합니다. 다음 예제는 User 모델에서 이메일이 “example@example.com”이면서 이름이 “John”인 데이터를 가져오는 방법을 보여줍니다.

users = User.select().where((User.email == "example@example.com") & (User.name == "John"))

for user in users:
    print(user.name, user.email)

Peewee를 사용하여 데이터 조회하는 방법에 대해 알아보았습니다. Peewee는 다양한 데이터베이스를 지원하며, 직관적인 인터페이스를 제공하므로 데이터베이스 작업을 쉽게 처리할 수 있습니다.

더 자세한 정보는 Peewee 공식 문서를 참조하세요.

Peewee 공식 문서