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

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

WBOY
WBOYoriginal
2023-06-10 17:06:071080parcourir

Avec la popularité généralisée des applications Web, Python est de plus en plus utilisé dans le domaine du développement Web. De nombreux frameworks Web Python fournissent aujourd'hui des frameworks ORM pour l'exploitation des bases de données. SQLObject est l'un des frameworks ORM les plus populaires et les plus faciles à utiliser. Cet article présentera en détail comment utiliser le framework SQLObject.

  1. Installer SQLObject

L'utilisation de l'outil pip peut facilement installer SQLObject :

pip install sqlobject
  1. Connectez-vous à la base de données

Tout d'abord, introduisez la bibliothèque sqlobject et utilisez la méthode connectionForURI pour vous connecter à la base de données. Voici un exemple de connexion à une base de données MySQL :

import MySQLdb
from sqlobject import *


connection_string = 'mysql://user:password@localhost/database'
connection = connectionForURI(connection_string)
sqlhub.processConnection = connection

L'utilisateur, le mot de passe, l'hôte local et la base de données doivent être remplacés par les valeurs réelles.

  1. Définir la classe modèle

Lors de la définition d'une classe modèle, vous devez hériter de la classe SQLObject. Voici un exemple simple de définition de la classe Person :

class Person(SQLObject):
    name = StringCol(length=100)
    age = IntCol(default=0)

La classe Person contient deux champs : nom et âge. name est un type de chaîne d’une longueur de 100 et age est un type entier avec une valeur initiale de 0. SQLObject fournit plusieurs types de colonnes différents, notamment StringCol, IntCol, FloatCol, DecimalCol, BoolCol, DateCol, DateTimeCol et TimeCol, etc. Vous pouvez également définir d'autres propriétés de la colonne, telles que la valeur par défaut, l'unicité, l'index, etc.

  1. Create table

Pour créer une table dans la base de données, introduisez simplement le module qui définit la classe modèle dans le shell ou le script Python et exécutez la méthode createTable() :

from models import Person


Person.createTable()

Si la table existe déjà, elle le sera ne pas être créé à nouveau.

  1. Insérer des données

Pour insérer des données dans le tableau, créez simplement une instance de la classe modèle et attribuez des valeurs à chaque champ. Par exemple :

john = Person(name='John Smith', age=30)

Pour enregistrer l'instance dans la base de données, appelez sa méthode save() :

john.save()

À ce stade, une table nommée person sera créée dans la base de données et une ligne nommée John Smith avec l'âge de 30 ans sera insérée . Enregistrer.

  1. Interrogation de données

SQLObject fournit de nombreuses méthodes pour interroger les données dans la base de données. Voici plusieurs exemples de méthodes couramment utilisées :

(1) Récupérer tous les enregistrements

Pour obtenir tous les enregistrements de la table Person, vous pouvez appeler la méthode select() de la classe Person :

people = Person.select()
for person in people:
    print(person.name, person.age)

Ce code parcourra chaque enregistrez dans les enregistrements de la table Personne et affichez leurs valeurs de champ de nom et d'âge.

(2) Filtrer les enregistrements par conditions

Pour filtrer les enregistrements par conditions, vous pouvez transmettre un objet SQLExpression dans la méthode select(). Par exemple, le code suivant obtiendra toutes les personnes âgées de 30 ans ou plus :

people = Person.select(Person.age >= 30)
for person in people:
    print(person.name, person.age)

De même, des comparaisons peuvent être effectuées à l'aide d'opérateurs tels que 91eef5681cad6f0cc96f9adeb2931b45, >=, == et !=.

(3) Trier par champ

Pour trier par champ, vous pouvez transmettre une clause OrderBy dans la méthode select(). Par exemple, le code suivant triera par le champ âge par ordre croissant :

people = Person.select(orderBy=Person.age)
for person in people:
    print(person.name, person.age)

Pour trier par ordre décroissant, vous pouvez ajouter un signe moins avant le nom du champ, par exemple :

people = Person.select(orderBy=-Person.age)
  1. Mettre à jour les données

Pour mettre à jour les données, modifiez simplement la valeur de l'attribut de l'instance de classe de modèle, puis appelez sa méthode save(). Par exemple, le code suivant modifiera l'âge de John Smith à 35 ans :

john.age = 35
john.save()
  1. Suppression de données

Pour supprimer des données, appelez simplement la méthode destroySelf() de l'instance de classe modèle. Par exemple, le code suivant supprimera un enregistrement nommé John Smith :

john.destroySelf()
  1. Summary

SQLObject est un framework ORM très pratique qui peut grandement simplifier les opérations de base de données dans le développement Web Python. Cet article présente l'utilisation de base de SQLObject, notamment la connexion à la base de données, la définition des classes de modèle, la création de tables, l'insertion de données, l'interrogation de données, la mise à jour des données et la suppression de données. J'espère que les lecteurs pourront essayer d'utiliser SQLObject pour le développement Web Python.

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