Bottle 0.8 und Unicode

Django, Flask, Bottle, WSGI, CGI…
Antworten
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

mit der Version 0.8 nutzt Bottle für als Basis ja Unicode, d.h. z.B. Ausgaben von Templates werden als Unicode zurück gegeben. Bottle encoded dann beim Senden der Seite mit UTF-8.

Wenn ich jetzt "normale" String mit einer Template-Ausgabe mixe:

Code: Alles auswählen

# -*- coding: utf-8 -*-
...
text = 'foo boo'
vorlage = ''.join(bottle.template('mein_template.tpl')
return text+vorlage
gibt's einen Fehler. So weit so gut.

Welcher der beiden folgenden Weg ist denn nun der richtig - ich steh' da gerade aufm Schlauch.

Code: Alles auswählen

# -*- coding: utf-8 -*-
...
text = u'foo boo'
vorlage = ''.join(bottle.template('mein_template.tpl')
return text+vorlage

Code: Alles auswählen

# -*- coding: utf-8 -*-
...
text = 'foo boo'
vorlage = ''.join(bottle.template('mein_template.tpl').encode('utf-8')
return text+vorlage
Funktionieren tun beide.

Gruß, noisefloor
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Das kommt ganz darauf an, welche Form der resultierende String haben soll. Ist das egal, gibt es zwischen den beiden Varianten keinerlei Vor- oder Nachteile. Wenn es geht, würde ich allerdings %rebase benutzen, um vorlagen zu implementieren, statt manuell Strings dran zu kleben.

Das join() kannst du dir bei 0.8 übrigens sparen, Templates geben neuerdings Strings zurück und keine Listen mehr.
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
noisefloor
User
Beiträge: 3857
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,
Wenn es geht, würde ich allerdings %rebase benutzen, um vorlagen zu implementieren, statt manuell Strings dran zu kleben.
Das werde ich wohl auch machen, alle Ausgaben auf Templates umzustellen. Ist so wie so sauberer.

Gruß, noisefloor
Antworten