Maison >développement back-end >Tutoriel Python >Explication détaillée du framework ORM Peewee en Python
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.
Peewee peut être installé via pip. Entrez la commande suivante dans le terminal pour installer :
pip install peewee
(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) 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()
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!