Python est un langage de programmation de haut niveau largement utilisé dans le développement Web, le calcul scientifique, le traitement de données et d'autres domaines. Dans le développement Python, le framework ORM (Object-Relational Mapping) est un composant important. Il peut établir un pont cohérent entre les bases de données relationnelles et les langages de programmation orientés objet, et faciliter le travail de développement des programmeurs Python.
Parmi les nombreux frameworks Python ORM, Pony ORM est un outil léger de mappage objet-relationnel. Il utilise la syntaxe naturelle et simple du langage Python et fournit des fonctions riches pour mapper rapidement des objets Python à des bases de données relationnelles.
Tout d'abord, nous devons l'installer via l'outil de gestion de paquets pip.
pip install pony
2.1 Se connecter à la base de données
Tout d'abord, nous devons nous connecter à une base de données. Pony ORM prend en charge une variété de bases de données relationnelles, notamment MySQL, PostgreSQL, SQLite, Oracle, MS SQL. Serveur, etc Prenons SQLite comme exemple.
from pony.orm import *
db = Database()
db.bind(provider='sqlite', filename='database.sqlite', create_db=True)
Notez qu'avant de vous connecter à la base de données, vous Vous devez définir une instance de base de données, puis spécifier le type et le nom de la base de données via la méthode bind(). Si la base de données n'existe pas, vous pouvez utiliser l'option create_db=True pour créer automatiquement la base de données.
2.2 Définir la classe d'entité
Ensuite, nous devons définir une classe Python et la convertir en classe d'entité via le décorateur db.Entity(). Les attributs d'une classe d'entité sont mappés aux colonnes du tableau de la base de données et les instances de la classe d'entité correspondent aux lignes du tableau.
class Customer(db.Entity):
name = Required(str) age = Required(int) address = Optional(str)
Dans le code ci-dessus, nous définissons une classe d'entité Customer et trois attributs : nom, âge et adresse. Parmi eux, le nom et l'âge sont des attributs obligatoires (Obligatoire) et l'adresse est un attribut facultatif (Facultatif).
2.3 Créer une table
Après avoir créé la classe d'entité, nous devons créer la structure de table correspondante dans la base de données. Cela peut être fait via la méthode db.generate_mapping().
db.generate_mapping(create_tables=True)
Après les étapes ci-dessus, nous nous sommes connectés avec succès à la base de données, avons défini une classe d'entité et créé la table correspondante dans la base de données.
3.1 Insérer des données
L'insertion de données est une opération courante. Grâce à Pony ORM, nous pouvons facilement insérer des données.
with db_session :
c1 = Customer(name='Tom', age=20) c2 = Customer(name='Jerry', age=25, address='New York') flush()
Dans le code ci-dessus, nous utilisons le mot-clé with db_session pour déclarer une session, puis créons deux instances Customer c1 et c2 en instanciant la classe d'entité Customer et en les affectant à des variables. Ensuite, nous appelons la méthode flush() pour insérer les instances c1 et c2 dans la base de données.
3.2 Interrogation de données
L'interrogation de données est l'une des fonctions les plus couramment utilisées du framework ORM. Grâce à Pony ORM, nous pouvons utiliser des expressions de requête ou des objets ORM pour interroger des données.
Expression de requête :
select(c for c in Customer if c.age > 20)
Dans le code ci-dessus, nous utilisons la fonction select() pour spécifier la classe d'entité à interroger. Ici, nous spécifions d'interroger les enregistrements de la table Customer datant de plus de 20 ans. Enfin, nous utilisons le contexte with db_session contenant la fonction select() pour effectuer l'opération de requête.
Objet ORM :
with db_session :
customers = Customer.select(lambda c:c.age > 20) for c in customers: print(c.name, c.age, c.address)
Dans le code ci-dessus, nous utilisons le mot-clé with db_session pour déclarer une session et utilisons Customer.select() pour interroger les enregistrements de la table Customer datant de plus de 20 ans. vieux. Les résultats de la requête sont représentés sous forme d'objets ORM et nous pouvons accéder à leurs propriétés et méthodes tout comme les objets Python. Enfin, nous utilisons une boucle for pour afficher les résultats de la requête.
3.3 Mettre à jour les données
L'opération de mise à jour des données est très simple. Il suffit d'interroger d'abord les enregistrements qui doivent être mis à jour, puis de modifier les valeurs d'attribut correspondantes, et enfin d'appeler la méthode flush() pour enregistrer les données modifiées. .
with db_session:
customer = Customer.get(name='Tom') customer.address = 'Beijing' flush()
Dans le code ci-dessus, nous utilisons l'instruction Customer.get() pour interroger l'enregistrement client nommé Tom, puis modifier son adresse à Pékin. Enfin, nous sauvegardons les données mises à jour dans la base de données en appelant la méthode flush().
3.4 Suppression de données
La suppression de données est également très simple. Il suffit d'interroger d'abord l'enregistrement qui doit être supprimé, puis d'appeler sa méthode delete().
with db_session:
customer = Customer.get(name='Tom') customer.delete()
Dans le code ci-dessus, nous utilisons l'instruction Customer.get() pour interroger l'enregistrement client nommé Tom, puis appelons sa méthode delete() pour supprimer l'enregistrement de la base de données.
Pony ORM est un framework Python ORM simple, facile à utiliser et riche en fonctionnalités qui peut rapidement mapper des objets Python à une base de données relationnelle pour la persistance. Lorsque vous utilisez Pony ORM, nous devons d'abord nous connecter à la base de données, puis définir des classes d'entités, créer des tables et enfin implémenter des opérations telles que l'ajout, la suppression, la modification et l'interrogation via des expressions de requête ou des objets ORM. Pour les débutants, Pony ORM est un framework ORM très convivial avec de faibles coûts d'apprentissage, vous permettant de démarrer rapidement.
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!