Seite 1 von 1

Zeilenumbruch hinter jedem Tupel

Verfasst: Freitag 3. Mai 2013, 15:11
von Sebi.Schneider
Hallo ich bin neu hier, und ich habe mich mit meinem Datenbank aus der Hochschule verbunden.

Ich bekomm leider keinen Zeilenumbruch bei dieser Liste nicht hin
[(1,'ATitel'),(2,'BTitel'),(3,'CTitel') ]

anbei mein code

Code: Alles auswählen

    try:
       
        datenbank_connect = pg.connect(host = "localhost",database="****",user = "****",
        password="****")
        curs =datenbank_connect.cursor()
        curs.execute('SELECT * from categories')

        datenbank_connect.commit()

        content.append(curs.fetchall())
        
        #for line in content:
           # print "%s <br />" % line

    except pg.DatabaseError,e:
        datenbank_connect.rollback()
       
        print 'Error %s' %e
        sys.exit(1)


    finally:

        if datenbank_connect:
            datenbank_connect.close()

       
    return Response(page % content, content_type="text/html")

Vielen Dank für die Hilfe :D

Re: Zeilenumbruch hinter jedem Tupel

Verfasst: Freitag 3. Mai 2013, 15:23
von BlackJack
@Sebi.Schneider: Das ist nicht die Liste die als `content` in Deinem Programm besteht. Schau Dir *die* Liste noch mal genau an. Wo wird `content` überhaupt definiert? Und kann da jemals mehr als ein Element drin sein?

Die Ausnahmebehandlung und das ``finally`` sind fehlerhaft. Wenn die erste Zeile im ``try``-Block eine Ausnahme auslöst, dann ist `datenbank_connect` undefiniert, dass heisst weder der ``except``- noch der ``finally``-Zweig würden dann fehlerfrei durchlaufen. Beide für sich betrachtet führen zu einem `NameError`.

Re: Zeilenumbruch hinter jedem Tupel

Verfasst: Freitag 3. Mai 2013, 15:44
von Sebi.Schneider
Bei mir ist content als Liste oben difiniert.

Nur weiß ich leider gar nicht mehr weiter, sitze seit ca. 4 std dran :K :K

Code: Alles auswählen

import psycopg2 as pg
from werkzeug.wrappers import Request, Response


page = """<html>
<body>
<a>%s</a>
</body>
</html>"""


@Request.application
def app(request):
    #Datenbank verbinden
    content = []

Re: Zeilenumbruch hinter jedem Tupel

Verfasst: Freitag 3. Mai 2013, 15:55
von Sebi.Schneider
ok hab es gelöst, danke

Re: Zeilenumbruch hinter jedem Tupel

Verfasst: Freitag 3. Mai 2013, 16:06
von Sirius3
@Sebi.Schneider: das »commit« ist überflüssig. Warum brauchst Du eine Liste, wenn diese sowieso nur ein Element enthält?
Das »sys.exit(1)« ist an dieser Stelle sehr schlecht, da es Deinen ganzen Server beendet. Es sollte in einem normale Programm überhaupt nicht vorkommen.
Da Du nichts an der Datenbank änderst, was soll der »rollback«?
Ein 'select *' ist selten eine gute Idee, außer Du fragst an anderer Stelle die Spaltennamen ab.