Seite 3 von 3
Re: Bottle, HTML Datenbankzugriff
Verfasst: Donnerstag 28. Februar 2013, 13:36
von Sirius3
@DanJJo: Du mußt es nur richtig machen. »import« ist ein reserviertes Wort und darf nicht als Variablennamen benutzt werden.
Was willst Du mit der zweiten 1 bei look.get("1","1") bewirkten?
Code: Alles auswählen
WHERE_CLAUSE = {1: ("WagenName in (SELECT AutoName FROM Wagen WHERE WagenName LIKE ?)", lambda imp: ('%'+imp+'%',)) }
abfrage="SELECT AutoName,ps,hubraum FROM Wagen WHERE "
where, convert_arguments = WHERE_CLAUSE.get(1, ('1', lambda arg: ()))
cur.db.execute(abfrage+where, convert_arguments(import_))
Re: Bottle, HTML Datenbankzugriff
Verfasst: Donnerstag 28. Februar 2013, 13:50
von BlackJack
Mich würde ja eher interessieren was die Abfrage insgesamt bewirken soll. Es gibt eine Tabelle `Wagen` mit Spalten `AutoName` und `WagenName` und dann *diese* Abfrage!?
Re: Bottle, HTML Datenbankzugriff
Verfasst: Freitag 1. März 2013, 11:30
von DanJJo
BlackJack hat geschrieben:@DanJJo: Das sollte eigentlich überhaupt nicht nötig sein wenn Du bei Texten durchgehend mit dem `unicode`-Typ arbeitest. Vor allem sollte eine Abfrage immer ein `unicode`-Objekt liefern.
Code: Alles auswählen
In [14]: cur.execute('select Vorname, Nachname from personen')
Out[14]: <sqlite3.Cursor at 0x8fddaa0>
In [15]: cur.fetchall()
Out[15]: [(u'Max', u'Mustermann')]
Und beim Eintragen erwartet SQLite UTF-8 kodierte `str`-Objekte oder `unicode`-Objekte.
Etwas global zu definieren, so dass alle Kodierungen auf magische Weise passieren geht nicht. Die „magic line” gibt an wie der Quelltext kodiert ist und muss mit der tatsächlichen Kodierung des Quelltextes überein stimmen. Das ist aber nur für den Compiler wichtig, zur Laufzeit hat diese Angabe keine Auswirkung.
hmpf bringt mich irgendwie nicht weiter, da ich immer wieder einen Fehler bekomme.
an anderer Stelle hab ich
im Browser URL FELd WIRd angezeigt ../Wagen/ÖMW aber der Browser selbst liefer den Fehler
Error: 500 Internal Server Error
Sorry, the requested URL '
http://localhost:8080/Wagen/%C3%96mw' caused an error:
wo liegt mein problem?
Re: Bottle, HTML Datenbankzugriff
Verfasst: Freitag 1. März 2013, 11:51
von Sirius3
@DanJJo: wie sollen wir aus diesem unzusammenhängenden Angaben irgendwie ableiten können, an welcher Stelle nicht das passiert, was Du erwartest?
Wenn Du eine Route Wagen/... definierst, findet er natürlich den Link user/... nicht.
Re: Bottle, HTML Datenbankzugriff
Verfasst: Freitag 1. März 2013, 11:57
von DanJJo
sorry sollte natürlich Wagen heißen...
bei User tritt nur das gleiche problem mit den Umlauten auf..
also ich speicher irgendwann den Namen des Wagens in meiner DB und wenn ich auf die seite des Wagens gehen möchte kommt dieser fehler...
EDIT*:
Habs selbst gelöst -> Lösung
Code: Alles auswählen
@route("/Wagen/<Wagenname>")
wagenname = wagenname.decode('utf-8')
es reicht nicht die daten beim einfügen in die DB zu decoden. In den Routen muss es nochmals geschehen.