Maison  >  Article  >  développement back-end  >  Explication détaillée du framework ORM Peewee en Python

Explication détaillée du framework ORM Peewee en Python

王林
王林original
2023-06-10 10:57:142624parcourir

Explication détaillée du framework ORM Peewee en Python

ORM (Object Relational Mapping) est une technologie qui mappe des objets à des bases de données relationnelles. Cet article présentera Peewee, un framework ORM en Python. Peewee est un framework ORM léger, facile à utiliser et flexible qui prend en charge plusieurs bases de données telles que SQLite, MySQL et PostgreSQL. Cet article présentera l'installation, l'utilisation de base, l'utilisation avancée et la comparaison de Peewee avec d'autres frameworks ORM.

  1. Installation de Peewee

Peewee peut être installé via pip. Entrez la commande suivante dans le terminal pour installer :

pip install peewee
  1. Utilisation de base

(1) Connexion à la base de données

Avant d'utiliser Peewee, vous devez d'abord vous connecter à la base de données. Le code suivant montre comment se connecter à une base de données SQLite via Peewee :

from peewee import *

db = SqliteDatabase('my_database.db')

Parmi eux, my_database.db est le nom de la base de données SQLite. Si le fichier de base de données n'existe pas, le fichier sera créé dans le répertoire courant.

Peewee prend également en charge MySQL, PostgreSQL et d'autres bases de données. Il vous suffit de remplacer SqliteDatabase par la base de données correspondante. Par exemple, le code suivant montre comment se connecter à une base de données MySQL via Peewee :

db = MySQLDatabase('my_database', user='my_user', password='my_password', host='my_host', port=3306)

(2) Définir le modèle

Peewee utilise des modèles pour décrire les tables de la base de données. Chaque modèle représente une table et chaque attribut représente un champ de la table. Le code suivant définit un modèle User, qui contient deux champs : id et name :

class User(Model):
    id = AutoField(primary_key=True)
    name = CharField()

    class Meta:
        database = db

Parmi eux, AutoField représente la clé primaire à incrémentation automatique, Primary_key=True représente le champ comme clé primaire et CharField représente le type de chaîne.

(3) Créer une table

Après avoir défini le modèle, vous devez créer la table correspondante dans la base de données correspondante. Peewee fournit la méthode create_table pour créer une table, le code est le suivant :

User.create_table()

(4) Insérer des données

Peewee fournit la méthode save pour insérer des données dans la base de données. Le code suivant insère une donnée :

user = User(name='张三')
user.save()

(5) Interroger des données

Peewee fournit des méthodes get et select pour interroger des données. Parmi elles, la méthode get est utilisée pour interroger une seule donnée et la méthode select est utilisée pour interroger plusieurs données. Le code suivant interroge tous les utilisateurs nommés Zhang San :

users = User.select().where(User.name == '张三')
for user in users:
    print(user.id, user.name)
  1. Utilisation avancée

(1) Requête associée

Peewee prend en charge les requêtes liées aux clés étrangères. Le code suivant définit un modèle Order, qui contient trois champs : id, user et product :

class Order(Model):
    id = AutoField(primary_key=True)
    user = ForeignKeyField(User, backref='orders')
    product = CharField()

    class Meta:
        database = db

Parmi eux, ForeignKeyField représente la clé étrangère, et backref='orders' signifie que toutes les commandes de l'utilisateur sont accessibles via User. ordres.

Vous pouvez effectuer des requêtes associées via la méthode de jointure, comme indiqué ci-dessous :

orders = Order.select().join(User).where(User.name == '张三')
for order in orders:
    print(order.id, order.user.name, order.product)

(2) Opération de transaction

Peewee prend en charge les opérations de transaction. Plusieurs opérations sur la base de données peuvent être encapsulées avec db.atomic(), le code est le suivant :

with db.atomic() as txn:
    user1 = User(name='张三')
    user1.save()
    user2 = User(name='李四')
    user2.save()
    for i in range(10):
        order = Order(user=user1, product='product_' + str(i))
        order.save()
        order = Order(user=user2, product='product_' + str(i))
        order.save()
  1. Comparaison avec d'autres frameworks ORM

Comparé au framework ORM de Django, Peewee est plus léger. flexible à utiliser. Par rapport à SQLAlchemy, la syntaxe de Peewee est plus concise et claire, et elle offre également de nombreuses utilisations avancées pratiques.

En bref, Peewee est un framework Python ORM recommandé, et il est également largement utilisé dans de nombreux projets en raison de sa flexibilité et de sa facilité d'utilisation.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn