62 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 on loodud Eno Tõnisson, Tauno Palts, Kaarel Tõnisson, Heidi Meier, Merilin Säde, ja Säde Mai Krusberg jt poolt Creative Commons Attribution 4.0 International License litsentsi alusel, kui pole teisiti märgitud.

Jaga seda raamatut