Seite 1 von 1

get Variable in Python bottle

Verfasst: Freitag 13. Januar 2017, 10:32
von djevil
Hallo,

ich fange gerade mit Python bottle an.

Ich möchte einfach eine Variable an die URL hängen, und damit dieselbe Seite aufrufen.

Ich habe eine server.py

Code: Alles auswählen

@app.route('/')
def serve_site():
    return template('content.tpl')
und die content.tpl:

Code: Alles auswählen

%if name != "":
	<h1>Content: {{ name }}<h1><p />
% end

<a href="name=Jan">
	<img src="/icons/head.png" width="100%">
</a>
Wie muss ich das korrekt aufrufen?

Mfg d

Re: get Variable in Python bottle

Verfasst: Freitag 13. Januar 2017, 12:31
von noisefloor
Hallo,

soll die Variable `name` Teil der Route sein oder willst du die als GET-Parameter übergeben? Das ist nicht das gleich bzw. der Zugriff funktioniert darauf dann anders.

Bei der Route muss du die Route halt mit einem Platzhalter für die Variable ausstatten, bei GET sind die Schlüssel-Werte Paare in `request.query` gespeichert (siehe http://www.bottlepy.org/docs/dev/tutori ... -variables).

Dein Template funktioniert so nicht, weil die `name` nicht ans Template übergibst. Außerdem ist `<a href="name=Jan">` kein gültiger Link.

Gruß, noisefloor

Re: get Variable in Python bottle

Verfasst: Freitag 13. Januar 2017, 14:02
von djevil
Danke, mit der get -Methode funktioniert es nun.

Wie geht es mit der route Methode?

Habe jetzt: server.py

Code: Alles auswählen

## as Route
@route('/index/<newid2>/<newpage2>')
def index():
    return template('content.tpl',  id2=newid2, page2=newpage2)
content.tpl

Code: Alles auswählen

<h1>Hello {{ id2 }}</h1>
<a href="/index/newid2/newpage2">
   <img src="/icons/firefox.png" width="10%">
</a>

MfG. d

Re: get Variable in Python bottle

Verfasst: Freitag 13. Januar 2017, 14:33
von djevil
Ok, mit

Code: Alles auswählen

@route('/index')
@route('/index/<name>')
def index(name=None):
    return template('content.tpl', name=name)

geht es ;)

Schönes Wochenende!