Peewee는 파이썬에서 사용할 수 있는 간단하고 직관적인 ORM(Object Relational Mapping) 라이브러리입니다. Peewee를 사용하면 데이터베이스에 쿼리를 보내고 결과를 처리하는 작업을 쉽게 수행할 수 있습니다. 이번 포스트에서는 Peewee의 filter()
와 where()
메소드를 사용하여 쿼리 조건을 설정하는 방법에 대해서 알아보겠습니다.
filter() 메소드
filter()
메소드는 쿼리 결과를 필터링하기 위해 사용됩니다. 이 메소드는 Peewee 모델의 필드와 값을 인자로 받아 해당 필드의 값을 조건으로 적용합니다.
from peewee import *
db = SqliteDatabase('my_database.db')
class Person(Model):
name = CharField()
age = IntegerField()
class Meta:
database = db
# 예시 데이터 생성
Person.create(name='Alice', age=25)
Person.create(name='Bob', age=30)
# 필터링 쿼리
query = Person.filter(name='Alice')
위의 예제에서는 filter()
메소드를 사용하여 name
필드의 값이 ‘Alice’인 데이터를 필터링했습니다. 이렇게 필터링된 결과는 query
변수에 저장됩니다.
where() 메소드
where()
메소드는 더 복잡한 쿼리 조건을 설정하기 위해 사용됩니다. 여러 조건을 조합하여 쿼리를 작성할 수 있습니다.
# 조건 추가하여 필터링
query = Person.where((Person.name == 'Alice') & (Person.age > 20))
위의 예제에서는 where()
메소드를 사용하여 name
이 ‘Alice’이고 age
가 20보다 큰 데이터를 필터링했습니다. &
연산자를 사용하여 두 개의 조건을 동시에 만족하는 데이터를 찾았습니다.
실행 결과 가져오기
필터링 된 쿼리를 실행하여 결과를 가져올 수 있습니다.
# 결과 가져오기
results = query.execute()
for person in results:
print(person.name, person.age)
위의 예제에서는 execute()
메소드를 사용하여 필터링된 쿼리를 실행한 후 결과를 가져왔습니다. 결과는 results
변수에 저장되고, 이를 통해 필터링된 데이터를 순회하며 출력할 수 있습니다.
Peewee의 filter()
와 where()
메소드를 사용하면 간단하고 효율적으로 쿼리 조건을 설정할 수 있습니다. 이러한 메소드를 통해 데이터베이스 작업을 쉽게 수행할 수 있습니다.
더 많은 정보를 원하시면 Peewee 공식 문서를 참고하시기 바랍니다.