Python ja CGI-ohjelmointi - Viikkotehtävä 2

Tehtävässä on tarkoitus oppia perusteet CGI-ohjelmoinnista ja samalla ymmärtää HTTP-protokollan tilaton toimintatapa. Jokainen pyyntö www-palvelimelle on erillinen eikä näitä pyyntöjä normaalisti yhdistä mikään toisiinsa. Tätä tilattomuutta täytyy kiertää erilaisilla tavoilla jotta kyetään rakentamaan sovelluksia eikä pelkästään yksinkertaisia www-sivuja. Tällä viikolla opitaan tallentamaan sovelluksen tila lomakkeen sisään piilokenttien avulla (tasot 3 ja 5).

Kaikille tasoille yhteiset vaatimukset:

Taso 1

Taso 3

Toteuta tason 1 -ohjelma seuraavilla lisäominaisuuksilla:

Taso 5

Toteuta taso 3:n mukainen CGI-ohjelma seuraavilla laajennuksilla ja muutoksilla:

Pythonin merkistöongelmat

Peruskaava:

HTML ja erikoismerkit

Jinja2 hoitaa HTML-erikoismerkkien koodauksen automaattisesti, jos AutoEscape-ominaisuus on päällä.

Erikoismerkit (<, >, &) hoituvat automaattisesti myös jos käyttää dom-rajapintaa. Jos ei käytä niin käyttäjän syötteet on ajettava cgi.escape-funktion läpi. Ei kuitenkaan molempia, koska silloin esim. <-merkki esitetään koodatussa muodossa &lt; eikä <.

Linkkeihin täytyy erikoismerkit koodata vielä erikseen (Percent-encoding), koska linkeissä on omat rajoituksensa. Tämä hoituu urllib.quote_plus-funktiolla. quote_plus edellyttää utf-8-muotoon enkoodattua merkkijonoa.

Käyttäjien kommentit

Kommentoi Lisää kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
https://appro.mit.jyu.fi/tiea2080/vt/vt2/
© Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <https://hazor.iki.fi/>
2021-03-09 09:49:30
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta