Seite 1 von 1

Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 10:34
von proarter
Hallo!

ich bin ein ziemlicher Anfänger in sachen programmieren und bräuchte Hilfe bei der Erstellung meiner Suchfunktion.

Code: Alles auswählen

@app.route('/suche',methods=["GET", "POST"])
def suche():
    kategorien = genre()
    if request.method =="GET":
        suche = request.form["suche"]
        con = open_con()
        cur = con.cursor()
        query = ('SELECT bild_id, bild_name, vorschaupfad, kategorie FROM bilder \
                  WHERE bild_name = "%s"' % suche )
        cur.execute(query)
        wallpapers = [dict(bild_id = raw[0], bild_name=raw[1], vorschaupfad=raw[2], kategorie = raw[3]) for raw in cur]
        cur.close()
        con.close()

        return render_template('main.html', kategorien = kategorien, title = "Home", wallpapers = wallpapers)
das ist der code zu meiner Suchfunktion. Allerdings wenn ich dann bei der Suche was eingebe steht zwar oben in der URL der suchbegriff allerdings passiert sonst nichts :?
könnte mir einer weiterhelfen? wäre sehr dankbar :roll:

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 10:37
von jens

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 10:46
von proarter
hey vielen dank für deine antwort, allerdings kann ich mit den links gerade nicht so viel anfangen ? :K

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 10:52
von BlackJack
@proarter: Du formatierst Benutzeringaben als Zeichenkette in eine SQL-Zeichenkette. Das darf man niemals machen! Das ist gefährlich weil der Benutzer damit SQL-Code ausführen kann den *er* eingibt, zum Beispiel um an Informationen zu kommen die nicht für ihn gedacht sind, oder zum Beispiel auch einfach mal alle Tabellen zu löschen.

Ausschreiben und richtig schreiben von Namen wäre auch nett. Also `connection`, `cursor`, und `row` statt `raw`. :-)

Und was heisst „es passiert sonst nichts“? Was sagt das Fehlerprotokoll vom Webserver? Gibst Du auch einen tatsächlich existierenden Bildnamen ein? Hat das Template auch keine Endlosschleife? Sind sonstige Fehler im Template?

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 15:25
von noisefloor
Hallo,

@proarter: du holst das Ergebnis des SQL-Queries auch nirgendwo ab. Sprich: da fehlt noch ein `fetchall()`.

Gruß, noisefloor

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 15:43
von BlackJack
@noisefloor: Das kommt auf das DB-Modul an. Bei den meisten kann man auch einfach über den Cusor iterieren, insbesondere weil dann im Gegensatz zu `fetchall()` nicht alle Datensätze auf einmal geholt/übertragen werden müssen.

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 15:46
von jens
Hat schon jemand auf ein ORM verwiesen?!? :twisted:

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 15:50
von BlackJack
@jens: Noch nicht, aber das Problem wird das wohl auch nicht lösen.

Re: Hilfe bei Suchfunktion

Verfasst: Donnerstag 11. Juni 2015, 19:48
von noisefloor
Hallo,
BlackJack hat geschrieben:@noisefloor: Das kommt auf das DB-Modul an. Bei den meisten kann man auch einfach über den Cusor iterieren
Ah, ok. War mir so nicht bekannt. Liegt wohl daran, dass alle Beispiele, die ich bisher gesehen habe, im ein `fetch...` verwenden.

Gruß, noisefloor