[python] Peewee에서 정렬하기: order_by()

Peewee는 Python에서 간단한 ORM(Object-Relational Mapping) 도구로 사용됩니다. 이번 포스트에서는 Peewee의 order_by() 메서드를 사용하여 데이터베이스에서 정렬하는 방법을 알아보겠습니다.

order_by() 메서드란?

order_by() 메서드는 Peewee 쿼리에서 결과를 정렬하는 데 사용됩니다. 이 메서드는 정렬할 필드를 인수로 받고 오름차순(asc) 또는 내림차순(desc) 순서로 정렬할 수 있습니다.

사용법

Peewee의 order_by() 메서드를 사용하여 데이터베이스에서 정렬을 수행하는 단계는 다음과 같습니다:

  1. 모델 클래스에서 적절한 필드를 선택합니다.
  2. order_by() 메서드로 필드와 정렬 방향을 지정합니다.
  3. 쿼리를 실행하고 결과를 확인합니다.
from peewee import *

db = SqliteDatabase('my_database.db')

class Person(Model):
    name = CharField()
    age = IntegerField()

    class Meta:
        database = db

# 나이 오름차순으로 정렬된 결과를 가져옴
query = Person.select().order_by(Person.age.asc())

for person in query:
    print(person.name, person.age)

위의 예제에서는 Person 테이블에서 age 필드를 기준으로 오름차순 정렬을 수행합니다. asc() 메서드를 사용하여 오름차순으로 정렬되었음을 나타냅니다. 내림차순으로 정렬하려면 desc() 메서드를 사용하면 됩니다.

정렬 여러 필드

여러 필드를 기준으로 정렬하려면 order_by() 메서드에 여러 개의 필드를 전달하면 됩니다. 예를 들어, 먼저 age 필드로 정렬하고 그 후에 name 필드로 다시 정렬하려면 다음과 같이 사용할 수 있습니다:

// 나이 오름차순, 이름 내림차순으로 정렬된 결과를 가져옴
query = Person.select().order_by(Person.age.asc(), Person.name.desc())

위의 예제에서는 먼저 age 필드로 오름차순 정렬한 다음, 동일한 age 값이 있는 경우 name 필드로 내림차순 정렬합니다.

결론

Peewee의 order_by() 메서드는 데이터베이스에서 결과를 정렬하는 간단하고 유연한 방법을 제공합니다. 이를 통해 원하는 기준으로 데이터를 정렬하여 더 유용한 쿼리 결과를 얻을 수 있습니다.

더 많은 정보를 원하시거나 Peewee의 다른 기능을 알아보고 싶다면 Peewee 공식 문서를 참조해주세요.