Seite 1 von 1

Sqlite abfrage ! ich komm nicht weiter !

Verfasst: Freitag 10. Mai 2013, 01:17
von Manchotix
Hallo zusammen,

ich habe folgendes Problem und zwar will ich gerne result eine Abfrage stellen ob der string articlename in der Tuple vorhanden ist, um eine eindeutige zuweisung von url zu db eintrag zuerhalten.
Ich weiß zwar nicht ob das so gut ist wie ich es mache oder ob es eine sehr viel besser lösung gibt(die gibt es ganz sicher!) ist auch das erste mal das ich mich mit datebanken arbeite.
Wenn das mehr als falsch ist was ich da mache, dann bitte sagen.
Ich hoffe das mit jemand helfen kann und ich das Problem gut genug erklärt habe.

Code: Alles auswählen

@route("/<articlename>")
@view("singlearticle")
def single_post(articlename):
    dbcon = sqlite3.connect("./blog.db")
    con = dbcon.cursor()
    con.execute("SELECT headline, text FROM blog WHERE headline=:aname", {"aname": articlename})
    result = con.fetchall()
    con.close()
    if articlename not in result:
        return "error 404"
    else:
        return dict(rows=result)
Verwende Python 2.7 und bottle 0.11

Re: Sqlite abfrage ! ich komm nicht weiter !

Verfasst: Freitag 10. Mai 2013, 01:54
von Manchotix
Ok habe das Problem gelöst in dem ich einfach die result tuple in eine liste umgewandelt habe.
Ich weiß zwar nicht ob das jetzt so gut ist aber es löst fürs erste mein Problem für andere vorschläge oder verbesserungen bin ich offen.

Code: Alles auswählen

con.execute("SELECT headline, inhalt FROM blog WHERE headline=:aname", {"aname": articlename})
aresult = [result[0] for result in con.fetchall()]
con.close()
if articlename not in aresult:
    return "error 404"
else:
    return dict(rows=result)

Re: Sqlite abfrage ! ich komm nicht weiter !

Verfasst: Freitag 10. Mai 2013, 06:20
von Sirius3
Hallo Manchotix,

warum versuchst Du Probleme zu lösen, die nicht existieren?
Dein SQL-Select filtert alle blog-Einträge, bei denen »headline=articlename« ist.
Wenn die Spalte von »headline« unique ist, sollte das genau keinen oder einen Eintrag liefern.
Ein »if not result« reicht dann völlig aus.

Re: Sqlite abfrage ! ich komm nicht weiter !

Verfasst: Freitag 10. Mai 2013, 09:02
von Manchotix
Wenn die Spalte von »headline« unique ist, sollte das genau keinen oder einen Eintrag liefern.
Ein »if not result« reicht dann völlig aus.
Ok dank dir schonmal, reicht auch völlig aus :)

Aber sonst ist alles so weit richtig oder ist noch irgend wo ein grober schnittzer drin ?
Und tut mir leid, dass ich für sowas ein Thread aufmache war gestern schon spät :/.

Re: Sqlite abfrage ! ich komm nicht weiter !

Verfasst: Freitag 10. Mai 2013, 09:05
von /me
Manchotix hat geschrieben:Und tut mir leid, dass ich für sowas ein Thread aufmache war gestern schon spät :/.
Die Frage ist ja in Ordnung, sie ist nur an der falschen Stelle. Es gibt hier auch ein Unterforum für Fragen rund um Datenbanken.

Edit: Jetzt hat sie ja ein Moderator passend verschoben