# Beispiele fuer ZODB-Vortrag from ZODB import FileStorage, DB from Persistence import Persistent class Benutzer(Persistent): def __init__(self, id, name, vorname): assert(type(id)==type(1)) self.id=id self.name=name self.vorname=vorname self.warenkorb=[] def zuWarenkorb(self, ware): self.warenkorb.append(ware) def warenkorbBestellen(self): bestellung=[] bestellung_wert=0 for ware in self.warenkorb: self.bestellung.append(ware) bestellung.append(ware) bestellung_ware+=ware.preis dbfile="/tmp/benutzer.fs" storage=FileStorage.FileStorage(dbfile) db=DB(storage) conn=db.open() dbroot=conn.root() userdb=dbroot.get("userdb") if not userdb: print "Datenbank wird initialisiert" from BTrees import IOBTree userdb=IOBTree.IOBTree() dbroot["userdb"]=userdb neuerNutzer=Benutzer(1, "Meier", "Hans") userdb[neuerNutzer.id]=neuerNutzer get_transaction().commit() # oder get_transaction().abort() else: print "Es wird die vorhandene Datenbank benutzt: %s" % \ dbfile print "Es sind folgende Nutzer in der Datenbank:" for user in userdb.values(): print "ID: %s Name: %s Vorname: %s" % ( user.id, user.name, user.vorname)