Heim > Backend-Entwicklung > Python-Tutorial > Detaillierte Erläuterung des ORM-Frameworks SQLObject in Python

Detaillierte Erläuterung des ORM-Frameworks SQLObject in Python

WBOY
Freigeben: 2023-06-10 17:06:07
Original
1093 Leute haben es durchsucht

Mit der weit verbreiteten Beliebtheit von Webanwendungen wird Python im Bereich der Webentwicklung immer häufiger eingesetzt. Viele Python-Web-Frameworks bieten heute einige ORM-Frameworks für den Betrieb von Datenbanken. SQLObject ist eines der sehr beliebten und benutzerfreundlichen ORM-Frameworks. In diesem Artikel wird die Verwendung des SQLObject-Frameworks ausführlich vorgestellt.

  1. Installieren Sie SQLObject

Mit dem Pip-Tool können Sie SQLObject ganz einfach installieren:

pip install sqlobject
Nach dem Login kopieren
  1. Mit der Datenbank verbinden

Stellen Sie zunächst die SQLobject-Bibliothek vor und verwenden Sie die Methode „connectionForURI“, um eine Verbindung zur Datenbank herzustellen. Das Folgende ist ein Beispiel für eine MySQL-Datenbankverbindung:

import MySQLdb
from sqlobject import *


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

Benutzer, Passwort, Localhost und Datenbank sollten durch tatsächliche Werte ersetzt werden.

  1. Modellklasse definieren

Beim Definieren einer Modellklasse müssen Sie die SQLObject-Klasse erben. Das Folgende ist ein einfaches Definitionsbeispiel der Person-Klasse:

class Person(SQLObject):
    name = StringCol(length=100)
    age = IntCol(default=0)
Nach dem Login kopieren

Die Person-Klasse enthält zwei Felder: Name und Alter. name ist ein String-Typ mit einer Länge von 100 und age ist ein Integer-Typ mit einem Anfangswert von 0. SQLObject bietet verschiedene Arten von Spalten, darunter StringCol, IntCol, FloatCol, DecimalCol, BoolCol, DateCol, DateTimeCol und TimeCol usw. Sie können auch andere Eigenschaften der Spalte festlegen, z. B. Standardwert, Eindeutigkeit, Index usw.

  1. Tabelle erstellen

Um eine Tabelle in der Datenbank zu erstellen, führen Sie einfach das Modul ein, das die Modellklasse in der Python-Shell oder dem Python-Skript definiert, und führen Sie die Methode createTable() aus:

from models import Person


Person.createTable()
Nach dem Login kopieren

Wenn die Tabelle bereits vorhanden ist, wird sie vorhanden sein nicht erneut erstellt werden.

  1. Daten einfügen

Um Daten in die Tabelle einzufügen, erstellen Sie einfach eine Instanz der Modellklasse und weisen Sie jedem Feld Werte zu. Zum Beispiel:

john = Person(name='John Smith', age=30)
Nach dem Login kopieren

Um die Instanz in der Datenbank zu speichern, rufen Sie ihre save()-Methode auf:

john.save()
Nach dem Login kopieren

An diesem Punkt wird eine Tabelle mit dem Namen „person“ in der Datenbank erstellt und eine Zeile mit dem Namen „John Smith“ und dem Alter 30 eingefügt . Aufzeichnen.

  1. Abfragen von Daten

SQLObject bietet viele Methoden zum Abfragen von Daten in der Datenbank. Im Folgenden sind einige häufig verwendete Methodenbeispiele aufgeführt:

(1) Alle Datensätze abrufen

Um alle Datensätze in der Person-Tabelle abzurufen, können Sie die Methode select() der Person-Klasse aufrufen:

people = Person.select()
for person in people:
    print(person.name, person.age)
Nach dem Login kopieren

Dieser Code durchläuft jeden Datensätze in die Personentabelle aufnehmen und deren Namens- und Altersfeldwerte ausgeben.

(2) Datensätze nach Bedingungen filtern

Um Datensätze nach Bedingungen zu filtern, können Sie ein SQLExpression-Objekt in der Methode select() übergeben. Der folgende Code erhält beispielsweise alle Personen, die 30 Jahre oder älter sind:

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

Ebenso können Vergleiche mit Operatoren wie <, <=, >, >=, == und != durchgeführt werden.

(3) Nach Feld sortieren

Um nach Feld zu sortieren, können Sie eine OrderBy-Klausel in der Methode select() übergeben. Der folgende Code sortiert beispielsweise nach dem Altersfeld in aufsteigender Reihenfolge:

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

Um in absteigender Reihenfolge zu sortieren, können Sie vor dem Feldnamen ein Minuszeichen hinzufügen, zum Beispiel:

people = Person.select(orderBy=-Person.age)
Nach dem Login kopieren
  1. Daten aktualisieren

Zur Aktualisierung Um die Daten abzurufen, ändern Sie einfach den Attributwert der Modellklasseninstanz und rufen Sie dann die Methode save () auf. Der folgende Code ändert beispielsweise das Alter von John Smith auf 35:

john.age = 35
john.save()
Nach dem Login kopieren
  1. Daten löschen

Um Daten zu löschen, rufen Sie einfach die Methode destroySelf() der Modellklasseninstanz auf. Der folgende Code löscht beispielsweise einen Datensatz mit dem Namen John Smith:

john.destroySelf()
Nach dem Login kopieren
  1. Summary

SQLObject ist ein sehr praktisches ORM-Framework, das Datenbankoperationen in der Python-Webentwicklung erheblich vereinfachen kann. In diesem Artikel wird die grundlegende Verwendung von SQLObject vorgestellt, einschließlich der Verbindung mit der Datenbank, der Definition von Modellklassen, der Erstellung von Tabellen, dem Einfügen von Daten, dem Abfragen von Daten, dem Aktualisieren von Daten und dem Löschen von Daten. Ich hoffe, dass die Leser versuchen können, SQLObject für die Python-Webentwicklung zu verwenden.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung des ORM-Frameworks SQLObject in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage