JAXenter.de

Das Portal für Java, Architektur, Cloud & Agile
X

Wieviel Cyborg steckt jetzt schon im Menschen? Die webinale VISIONS klärt auf.

SQLObject, ein Objekt-Relational-Mapper in Python

Objekt Relational Mapping mit Python

Markus Jais

Python bietet Module für den Zugriff auf nahezu alle wichtigen Datenbanksysteme. Diese implementieren meist die Python-DB-API-Spezifikation [1]. Die entsprechenden Module finden Sie unter [2]. Seit einiger Zeit sind so genannte Objekt Relationale Mapper (ORM) in Mode gekommen, die es erlauben, ohne Kenntnisse von SQL mit Hilfe von Objekten auf die jeweilige Datenbank zuzugreifen. Natürlich gibt es auch für Python solche ORMs, wie z.B. das hier näher besprochene SQLObject. Meist ist die Benutzung relativ einfach und erfordert keine allzu lange Einarbeitungszeit. Hat man erst einmal ein wenig damit gearbeitet findet man schnell gefallen an ORMs. Ich hoffe, ich kann Sie mit diesem Artikel auch auf den Geschmack bringen.

from bookdb import *

connect(connectionForURI('mysql://bookuser:bookpasswd@localhost/books'))


a1 = insertAuthor("J.R.R.", "Tolkien")
a2 = insertAuthor("Alexandra", "Morton")
a3 = insertAuthor("Ales", "Martelli")
insertBook("The Lord of the Rings", a1)
insertBook("The Hobbit", a1)
insertBook("Listening to Whales", a2)
insertBook("Python in a Nutshell", a3)

result = Author.select(Author.q.firstName == "J.R.R.")

print "got %d rows"  % (result.count())

for author in result:
print author
for book in author.books:
print book

result = Author.select(Author.q.lastName == "Martelli")
if result.count() > 0:
author = result[0]
author.firstName = "Alex"
print author
 

Kommentare

Ihr Kommentar zum Thema

Als Gast kommentieren:

Gastkommentare werden nach redaktioneller Prüfung freigegeben (bitte Policy beachten).