Peewee est un petit ORM (s’occupant du mapping objet-modèle relationnel), facile d’utilisation. La syntaxe se rapproche de celle de Django et Peewee supporte des connexions vers sqlite, mysql, postgresql et cockroachdb.
Peewee propose tous les services d’un ORM : définition d’un modèle, connexion à une base de données, entrer des données, trier, filtrer, aggréger et de manière générale effectuer des requêtes complexes. Un utilitaire permet de faire une requête SQL comme alternative à l’utilisation des filtres.
Voici un exemple de définition de modèle :
from peewee import *
import datetime
db = SqliteDatabase('my_database.db')
class BaseModel(Model):
class Meta:
database = db
class User(BaseModel):
username = CharField(unique=True)
class Tweet(BaseModel):
user = ForeignKeyField(User, backref='tweets')
message = TextField()
created_date = DateTimeField(default=datetime.datetime.now)
is_published = BooleanField(default=True)
Des exemples d’utilisation dans des web-services (notamment avec Flask) sont disponibles dans la documentation.