64 Dünaamilised veebiaadressid

Järgnevalt vaatame, kuidas toimivad dünaamilised veebiaadressid. Saame aadressis näidata andmetüübi ja id ning ning sama id-d kasutada ka lehe sisus. Järgneva näite puhul kuvatakse aadressi /avaleht/1 puhul veebilehel teksti Tere, 1. külaline; /avaleht/2 aadressil teksti Tere, 2. külaline. Pärast Thonnys käivitamist saame vaadata, kas aadressil http://127.0.0.1:5000/avaleht/1 on sisu Tere, 1. külaline ja aadresssil http://127.0.0.1:5000/avaleht/2 sisu Tere, 2. külaline.

Kui paneme selle faili üles PythonAnywhere keskkonda, siis aadressil kujul https://kasutaja.pythonanywhere.com/avaleht/1 kuvatakse Tere, 1. külaline ja aadressil kujul https://kasutaja.pythonanywhere.com/avaleht/2 Tere, 2. külaline. See, millisel aadressil sisu on, sõltub sellest, mis me failis määrame. Kuna failis oli teekond @app.route('/avaleht/<int:id>'), siis ongi meil aadressi https://kasutaja.pythonanywhere.com järel veel sõna avaleht ja arv.

from flask import Flask

app = Flask(__name__)

@app.route('/avaleht/<int:id>') 
def tere(id):
    return 'Tere, ' + str(id) + '. külaline!'

if __name__ == '__main__':
    app.run()

Kui tahame aadressis kuvada nime, siis saame teha seda nii <string:nimi>. Muutujat nimi saame kasutada funktsiooni argumendina ja tagastatavas tekstis. Näiteks saame seda teha järgnevalt.

from flask import Flask

app = Flask(__name__)

@app.route('/avaleht/<string:nimi>')
def tere(nimi):
    return 'Tere, ' + nimi + '!'

if __name__ == '__main__':
    app.run()

Pärast Thonnys käivitamist saame vaadata, kas näiteks aadressil http://127.0.0.1:5000/avaleht/Elle kuvatakse tekst Tere, Elle! Samuti proovige aadressi panna mõni teine nimi. Aadressi määrasime reaga @app.route('/avaleht/<string:nimi>')

Vajadusel saame funktsiooni defineerida mitme argumendiga.

from flask import Flask

app = Flask(__name__)

@app.route('/avaleht/<string:nimi>/postitused/<int:id>') 
def tere(nimi, id):
    return 'Tere, ' + nimi + ', sinu id on ' + str(id) + '.'

if __name__ == '__main__':
    app.run()

Kui tahame tulemust vaadata, käivitame Thonnys programmi ja taas on aadressi alguseks http://127.0.0.1:5000/ ja ülejäänu tuleneb sellest, kuidas aadressi määrasime. Selle näite puhul defineerisime aadressi reaga @app.route('/avaleht/<string:nimi>/postitused/<int:id>'). Seega võime tulemust kontrollida näiteks aadressilt http://127.0.0.1:5000/home/Elle/postitused/2.

Litsents

Icon for the Creative Commons Attribution 4.0 International License

Tarkvaraarendus. 2. trükk Copyright © by Eno Tõnisson; Tauno Palts; Kaarel Tõnisson; Heidi Meier; Merilin Säde; Ago Luberg; Birgy Lorenz; Einar Kivisalu; Meelis Antoi; ja Säde Mai Krusberg is licensed under a Creative Commons Attribution 4.0 International License, except where otherwise noted.

Jaga seda raamatut