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.