Tässä moduulissa rakennetaan yksinkertainen verkkosivu Flask-kirjastolla. Tämän moduulin sisällön ymmärtäminen tulee auttamaan huimasti kurssin lopputehtävän ratkaisussa. Tässä moduulissa keskitytään myös pääsääntöisesti palvelinpuoleen, eikä selainpuolta tai "frontendia" kehitetä hirveästi.
Reitit
Kaikki alkaa reiteistä. Reiteillä tarkoitetaan kartoituksia selaimessa käytetyistä URL-osoitteista tai poluista, koodiin kirjoitettuihin funktioihin. Otetaan esimerkki.
https://www.esimerkki.fi/reitti_1/
Kun selain vierailee esimerkin osoitteessa, täytyy sivustolla olla jokin tapa erotella sekä määrittää, mitä kyseisen osoitteen latautuessa tapahtuu. Tämä voisi näyttää koodissa seuraavalta:
route("/reitti_1")
def funktio_reitti_1():
return(reitti_1.html)
Yllä olevassa pseudokoodissa, olemme tehneet verkkosivustolle reitin, joka hoitaa URL-osoitteen toiminnan niin, että palauttaa reitti_1.html -tiedoston selaimelle, kun selain avaa tämän osoitteen.
Tämä on ehkä koko aihealueen tärkein konsepti ymmärtää. Verkkosivuja voidaan rakentaa eri tavoilla, käyttäen erilaisia frameworkkeja sekä ohjelmointikieliä, mutta kaikissa on sama tarve. Jokaisessa ratkaisussa meidän täytyy pystyä kartoittamaan selaimessa näkyvät ja latautuvat osoitteet, palvelimella pyörivän verkkosivun koodiin.
Flask - sovellus
Pitäen mielessä yllä olevan konseptin, kirjotetaan nyt Pythonilla oma Flask-verkkosivu-sovellus. Voit tehdä tämän tällä hetkellä joko omalla laitteella tai sitten seurata vain perässä.
from flask import Flask
app = Flask(__name__)
@app.route('/')
def etusivu():
return '<h1>Tervetuloa!</h1>'
@app.route('/apua')
def apua_sivu():
return '<h1>Apua täältä!</h1>'
if __name__ == '__main__':
app.run()
Yllä oleva esimerkki on nyt toimiva Flask-sovellus, johon on määritetty kaksi reittiä. Nämä reittien kartoitukset tapahtuvat @app.route:n sisällä, jonka alla on ohjelmoitu se kyseinen toiminnallisuus, mitä tämän reitin latautuessa pitää tapahtua.
Mikä ei ole toimiva reitti yllä olevassa esimerkissä?
Molemmissa reitissä ei tapahdu mitään kummempaa kuin, että sovellus palauttaa selaimelle tai "selainpuolelle" HTML-koodin, jossa on yksinkertainen tekstin pätkä. Huomaa return.
Nämä voivat olla tyypillisesti paljon monimutkaisemmat, sillä tässä kohtaa koodia yleensä suoritetaan esimerkiksi
- käyttäjän tarkistusta (onko käyttäjällä oikeus ladata kyseinen sivu)
- käydään hakemassa tietoa muista palveluista tai tietokannasta, joka sisällytetään sitten tuohon palautuvaan HTML-koodiin
- Suoritetaan muutoksia tallessa olevaan tietoon, jne jne
Valmis ryhtymään eettiseksi hakkeriksi?
Aloita jo tänään.
Hakatemian jäsenenä saat rajoittamattoman pääsyn Hakatemian moduuleihin, harjoituksiin ja työkaluihin, sekä pääset discord-kanavalle jossa voit pyytää apua sekä ohjaajilta että muilta Hakatemian jäseniltä.