minimales ZODB Beispiel

Code-Stücke können hier veröffentlicht werden.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Hier mal ein minimales Beispiel, wie man ZODB nutzen kann... Auch wenn es in dem Falle nicht viel mehr als Pickle / UnPickle ist...

Code: Alles auswählen

from ZODB import DB, FileStorage
fstorage = FileStorage.FileStorage("ZODBminimal.fs")
MyDB = DB(fstorage)
connection = MyDB.open()
DBroot = connection.root()

def schreiben1():
    print "Werte setzten 1...",
    DBroot[1] = "ZODB ist cool"
    DBroot[2] = ["Perl","ist","doof"]
    get_transaction().commit()  # Änderungen in DB schreiben
    print "OK\n"

def schreiben2():
    print "Werte setzten 2...",
    DBroot[1] = "ZODB ist super cool!"
    DBroot[2] = "PHP ist auch doof"
    get_transaction().commit()  # Änderungen in DB schreiben
    print "OK\n"

def Anzeigen():
    print "Anzeigen:"
    print "-"*35
    for i in DBroot.keys():
        print "%5s : %s" % (i, DBroot[i])
    print "-"*35

Anzeigen()

schreiben1()

Anzeigen()

schreiben2()

Anzeigen()

MyDB.pack()   # Datenbank packen: Unnötige, alte Daten verwerfen.
Vortec
User
Beiträge: 52
Registriert: Dienstag 10. Dezember 2002, 11:54

Gibt es keine saubere Lösung "connection" zu schließen?

Und wo kommt "get_transaction" her? Gibt es da noch andere, Klassen-freundlichere Methoden?
| [url=http://www.sourceforge.net/projects/propolice/]propolice[/url] | [url=http://del.icio.us/vortec/]bookmarks[/url] | [url=http://www.BlowIRC.net/]irc[/url] | [url=irc://irc.BlowIRC.net/python]#python[/url] |
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Vortec hat geschrieben:Gibt es keine saubere Lösung "connection" zu schließen?
Da bin ich überfragt...
Vortec hat geschrieben:Und wo kommt "get_transaction" her? Gibt es da noch andere, Klassen-freundlichere Methoden?
Das ist eine sehr interessante Frage... Keine Ahnung wo get_transaction herkommt... Aber es funktioniert...

Aber naja, ich blick durch ZODB eh nicht ganz durch... Führ mich ist SQL um einiges Transparenter, auch wenn ich davon auch nicht so viel verstehe ;)

Leider gibt es nicht so viel Doku zu ZODB...
Hab nur die beiden gefunden:
http://www.thomas-guettler.de/vortraege ... hrung.html
http://zope.org/Members/adytumsolutions ... ZODB_PartI
Beyond
User
Beiträge: 227
Registriert: Freitag 6. September 2002, 19:06
Kontaktdaten:

get_transaction wird ein die globals eingebaut. Es geht mittels .commit. Ansonsten über den Destruktor also automagisch.

cu beyond
Antworten