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.