(gelöst)sqlalchemie ist zu gescwätzig

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Wh1sper
User
Beiträge: 16
Registriert: Dienstag 5. August 2008, 09:31
Kontaktdaten:

Donnerstag 11. September 2008, 13:52

Moin, ich habe gerade mal ein wenig Zeit und spiele mit sqlalchemie rum.
Ich verwendete das Tutorial http://www.rmunn.com/sqlalchemy-tutorial/tutorial.html
Wenn ich eine vorhandene Table Struktur im Programm haben will, dann mache ich das so:

Code: Alles auswählen

print "Debug: Tabelle einheiten"
einheiten = Table('Einheiten',metadata, autoload=True)
print "Debug: Tabelle Ende "
Debug: Tabelle einheiten
2008-09-11 14:46:42,859 INFO sqlalchemy.engine.base.Engine.0x..ac PRAGMA table_info("Einheiten")
2008-09-11 14:46:42,859 INFO sqlalchemy.engine.base.Engine.0x..ac {}
2008-09-11 14:46:42,860 INFO sqlalchemy.engine.base.Engine.0x..ac PRAGMA foreign_key_list("Einheiten")
2008-09-11 14:46:42,860 INFO sqlalchemy.engine.base.Engine.0x..ac {}
2008-09-11 14:46:42,860 INFO sqlalchemy.engine.base.Engine.0x..ac PRAGMA index_list("Einheiten")
2008-09-11 14:46:42,860 INFO sqlalchemy.engine.base.Engine.0x..ac {}
Debug: Tabelle Ende
Warum bekomme ich die Info Zeilen? Kann man das abschalten? Ich sehe den Wald vor lauter Bäumen nicht
Zuletzt geändert von Wh1sper am Dienstag 16. September 2008, 11:46, insgesamt 1-mal geändert.
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Donnerstag 11. September 2008, 15:18

Kannst du mal den gesamten Code posten? Momentan würde ich sagen, dass du dazu einfach im ``logging``-Modul den Loglevel höher einstellen solltest.

Letztendlich würde ich wohl das Tutorial nicht nutzen, es zeigt Stern-Imports die man sich nicht angewöhnen sollte und ist wohl auf dem Stand von SQLAlchemy 0.2; aktuell ist 0.4.7 und bald kommt 0.5.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Wh1sper
User
Beiträge: 16
Registriert: Dienstag 5. August 2008, 09:31
Kontaktdaten:

Freitag 12. September 2008, 09:39

Code: Alles auswählen

#!/usr/bin/python
from sqlalchemy import *

db = create_engine('sqlite:///rezepte.db')

db.echo = True  

metadata = MetaData(db)


rezepte = Table('Rezepte', metadata, autoload=True)
zutaten = Table('Zutaten', metadata, autoload=True)
print "Debug: Tabelle einheiten"
einheiten = Table('Einheiten',metadata, autoload=True)
print "Debug: Tabelle Ende "
# Einfach alles Ausgeben
def run(stmt):
    rs = stmt.execute()
    for row in rs:
    	print row
####

s = rezepte.select(rezepte.c.id == 1)
run(s)

s = zutaten.select(zutaten.c.rez_id== 1)
run(s)
Wie gesagt, es funktioniert, nur zuviel INFO.
Wie funktioniert das mit dem Loglevel?
Und hast du einen anderen Tipp für eine Übersicht über sqlalchemy anhand von ein paar Beispielen'?
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Freitag 12. September 2008, 10:24

Hmm. Schreib das mal neu, aber nutze diesmal das ORM Tutorial. Welche SQLAlchemy-Version ist das? Das kommt mir nämlich sehr wie irgendwelche Debug-Informationen.

Wenn es gar nicht anders geht (und du das Echo abgeschaltet hast), dann kannst du die Logschwelle erhöhen.

Code: Alles auswählen

import logging
logging.basicConfig(level=logging.DEBUG)
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Wh1sper
User
Beiträge: 16
Registriert: Dienstag 5. August 2008, 09:31
Kontaktdaten:

Dienstag 16. September 2008, 11:46

Jo, danke, ich hab's gefunden db.echo=True, wars.
Und ich nehme nun die Doku zu 0.4, wie du empfohlen hast.
Ps: Sorry für lange Antwortzeit, ich war anderweitig beschäftigt.
Antworten