[파이썬] Peewee Model 메타 데이터 설정

Peewee is a lightweight ORM (Object Relational Mapping) library for Python. It provides a simple and expressive way to interact with databases using Python classes.

One of the powerful features of Peewee is the ability to define metadata for your models. These metadata settings help in defining properties and behaviors of your models. In this blog post, we will explore some commonly used metadata settings when defining Peewee models.

Using Meta class

In Peewee, each model can have an inner Meta class that holds the metadata settings for that model. Let’s see how we can use the Meta class to configure metadata settings.

from peewee import *

database = SqliteDatabase('mydatabase.db')

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

    class Meta:
        database = database
        table_name = 'people'
        order_by = ('name',)

database.create_tables([Person])

# Now we can use 'Person' model to query the database

In the above example, we created a Person model and defined some metadata settings using the Meta class.

Additional Metadata Settings

Apart from the basic metadata settings demonstrated above, Peewee provides several more options to fine-tune the behavior of your models. Let’s explore some of these options:

class Person(Model):
    id = AutoField(primary_key=True)
    name = CharField()
    age = IntegerField()
class Person(Model):
    name = CharField(constraints=[Check('name <> "John"')])
    age = IntegerField()
class Person(Model):
    name = CharField(index=True)
    age = IntegerField()
class Person(Model):
    id = AutoField(primary_key=True)
    name = CharField()
    
class Address(Model):
    person = ForeignKeyField(Person, backref='addresses')
    address = TextField()

These are just a few examples of metadata settings that you can use in Peewee to configure your models as per your requirements. Please refer to the Peewee documentation for a complete list of available metadata settings.

Conclusion

In this blog post, we explored how to set metadata for Peewee models using the Meta class. We learned about some commonly used metadata settings and how they can be used to customize the behavior of our models. Peewee’s metadata settings provide a lot of flexibility and control over the way models interact with databases, making it a powerful tool for working with data in Python.