[파이썬] Peewee Case 및 Switch expressions

In this blog post, we will explore how to use the Peewee ORM in Python and look into using Switch expressions. Peewee is a lightweight Object Relational Mapper for Python that makes it easy to interact with databases using Python objects.

Getting Started with Peewee

Before we dive into the specifics of using the Case and Switch expressions, let’s start with a brief introduction to Peewee.

Peewee allows you to define your database models using Python classes. These models represent the tables and columns in your database. You can define relationships between models, perform CRUD operations, and execute complex queries using Peewee.

Here’s a simple example of how to define a model in Peewee:

from peewee import *

# Define your database connection
database = SqliteDatabase('my_database.db')

# Define your model
class User(Model):
    name = CharField()
    age = IntegerField()

    class Meta:
        database = database

# Connect to the database and create the tables (if they don't exist)
database.connect()
database.create_tables([User])

Using Case Expressions

Peewee provides a Case expression that allows you to perform conditional operations in your queries. Case expressions are useful when you want to apply different logic based on some condition.

Here’s an example of how to use a Case expression in Peewee:

from peewee import *

# ...

# Retrieve users and their status
users = User.select(User.name, Case(None, ((User.age >= 18, 'Adult'),), 'Child').alias('status'))

# Print the results
for user in users:
    print(f"User: {user.name} | Status: {user.status}")

In this example, we retrieve the users from the User table and assign a status to each user based on their age. If the user’s age is greater than or equal to 18, we assign the status as ‘Adult’; otherwise, we assign the status as ‘Child’.

Using Switch Expressions

Starting from Python 3.10, you can use Switch expressions to simplify your code when you have multiple conditions to check.

Here’s an example of how to use a Switch expression in Python:

# Define a function to determine the user status
def get_user_status(user_age):
    return match user_age:
        case age if age >= 18:
            return 'Adult'
        case _:
            return 'Child'

# Use the function to get the user status
user_status = get_user_status(20)

print(user_status)  # Output: 'Adult'

In this example, we have a function get_user_status that takes an user_age parameter. We use the match statement to define the conditions, and the case keyword to check if the user’s age is greater than or equal to 18. If it matches, we return ‘Adult’; otherwise, we return ‘Child’.

Switch expressions provide a more concise and readable way to handle multiple conditions compared to traditional if-else statements.

Conclusion

In this blog post, we explored how to use the Peewee ORM in Python for database operations and learned about Case and Switch expressions.

The Peewee ORM makes it easy to work with databases using Python objects, providing a convenient way to define models and perform queries. On the other hand, Switch expressions simplify the code when dealing with multiple conditions.

Both Peewee and Switch expressions are powerful tools that can enhance your Python programming experience and improve code readability.

Happy coding!