MySQLdb
Heute mal die Vorstellung eines sehr nützlichen Python Interfaces zu MySQL. Unter Ubuntu heißt das Paket python-mysqldb, für Windows Nutzer gibt es eine Version auf Sourceforge.
Nach der Installation kann es auch sofort losgehen. Wir erstellen uns ein Objekt und auch gleich einen Cursor für später. Cursor sind nicht zwangsläufig notwendig, es gibt auch andere Möglichkeiten, da entscheidet natürlich immer der Anwendungsfall.
db = MySQLdb.connect(host="host",port=3007,user="user", passwd="password",db="database") cursor = db.cursor()
Sowohl denn Cursor, als auch die Verbindung müssen mit close() geschlossen werden wenn wir sie nicht mehr brauchen. Wir können nun SQL Anfragen ausführen und durch commit() und rollback() die Transaktionssicherheit von MySQL voll auskosten.
try: cursor.execute("SELECT name FROM tbl_nutzer") db.commit() return True except: db.rollback() return False
Mittels fetchone() oder fetchall() können wir die Antwort auswerten.
while (None != (row = cursor.fetchone())): { print row } for row in cursor.fetchall(): { print row }
Noch etwas wichtiges dazu: Mit literal() können Strings escaped werden um Injections zu vermeiden. Bitte deshalb unbedingt darauf achten, das KEINE Nutzereingabe ohne Escape-Behandlung in eine Query gepackt wird.
Damit sind nur einige wenige Punkte abgedeckt und nicht die Mächtigkeit des ganzen Pakets. Wichtig ist ebenfalls noch auf Timeouts zu achten. Wer gerne pooled muss die Verbindungen zu MySQL nach einer gewissen Zeit beenden und neu verbinden. Windows Nutzer müssen evt. die TCP/IP Einstellungen anpassen um genügend Ports für Verbindungen zur Verfügung zu haben.
About the Author
Computer sollen uns in Beruf und Alltag unterstützen. Damit das funktioniert müssen wir einen einfachen und intuitiven Zugang zu unseren Programmen, Daten und Systemen haben.