bottle - bootstrap - template - Parameter Übergabe

Django, Flask, Bottle, WSGI, CGI…
Antworten
gNeandr
User
Beiträge: 68
Registriert: Sonntag 11. Mai 2014, 16:48

Der Aufbau meiner verschiedenen Py Funktionen in Verbindung mit web Seiten funktioniert bzgl. der Struktur und der Aufrufe bzw Parameterübergabe.

Allerdings habe ich noch Schwierigkeiten mit den folgenden Punkten:

1. Integration einer mit Hilfe von bootstrap erstellten HTML Seite.
Die Browser Darstellung einer HTML Seite mache ich im Moment mit

Code: Alles auswählen

@route('/test')
def test():
    long = '123456'
    return'''
  <html lang="de">
  <head>...</head>
  <body>
  ... 
   <p>{{long}}</p>
  ... 
</body>
  </html>
   '''
Funktioniert grundsätzlich.
Aber wie rufe ich einen derartigen HTML Code von einem File (template?) ab. Sonst wird das python Programm unübersichtlich.

2. In dem HTML Code sollen veränderliche Parameter übernommen und ausgegeben werden.

Wird beides mit http://bottlepy.org/docs/dev/tutorial.h ... -templates beschrieben? Nur verstehe ich es nicht :?

A\ Also wie und wo speichere ich einen HTML code als file ab um ihn mittels python Funktion einzubinden?
B\ Wie wird die Variable im HTML code eingetragen?
Die og. Angabe mit {{ .. }} klappt so nicht, obwohl der Parameter 'long' vor dem Aufruf des HTML codes gesetzt wird, siehe oben.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@gNeandr: was verstehst Du an dem verlinkten Abschnitt der Bottle-Dokumentation nicht?
Da steht, wo wie die Template-Datei heißen soll, wo sie liegt, und wie Parameter an den Template-Generator übergeben werden. Und das alles in den ersten zwei Absätzen, mit Beispielcode.
gNeandr
User
Beiträge: 68
Registriert: Sonntag 11. Mai 2014, 16:48

This will load the template file hello_template.tpl and render it with the name variable set. Bottle will look for templates in the ./views/ folder or any folder specified in the bottle.TEMPLATE_PATH list.
Liegt ./views dann in "meinem Projektfolder"? ... ich verstehe es so, dass es im bottle Bereich ist ??

Und warum wird in meinem Beispiel {{long}} nicht mit dem Parameter ersetzt und dieser ausgegeben?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@gNeandr: './' heißt, dass er vom aktuellen Pfad, also normalerweise dem Verzeichnis, von wo aus Du Deine Bottle-App gestartet hast, sucht. Du kannst aber TEMPLATE_PATH auch noch weitere Suchpfade hinzufügen. Und {{long}} wird nicht ersetzt, weil Du einfach den String zurückgibst, ohne was damit zu machen.
Antworten