Andrise programmeerimisalane WIKI

Veebispetsiifilised elemendid

Kõik sisenevate päringuga seotud andmed asuvad objektis self.request ning väljuvate andmetega seotud andmed asuvad objektis self.response. Näiteks kui on vaja midagi väljastada, saab seda teha omadusega out

self.response.out.write("see läheb ekraanile")

või kui on vaja ise seada päringu vastuskoodi (vaikimisi on selleks 200, kui päring õnnestus või 500, kui esines viga), saab seda teha meetodiga set_status.

self.reponse.set_status(404)

Nii läheb brauserile teade, nagu poleks vastavat faili leitud (veakood 404).

GET ja POST parameetrid

Kõik GET ja POST parameetrid saab kätte objektist self.request meetodiga get, mille parameetriks on otsitava muutuja nimetus.

Juhul kui kasutatav URL on kujul http://www.example.com/?nimi=Peeter%20Meeter, sisaldab see ühte GET parameetrit, mille nimeks on nimi ja väärtuseks Peeter Meeter.

nimi = self.request.get("nimi")

POST parameetrid saab kätte täpselt sama moodi, mingisugust vahe tegemist neil ei ole. Isegi kui tegu on failide üleslaadimisega, saab failide sisud kätte get meetodiga. Ainult failinime jaoks on vaja veidi teist lähenemist, selle saab kätte params massiivist.

faili_sisu = self.request.get('fail')
faili_nimi = self.request.params['fail'].filename

Meetod get omab lisaks muutuja nimele ka valikulist parameetrit, mis seab tagastusväärtuse juhul kui antud väärtust ei leitud. nimi = self.request.get(„nimi“, „nime pole“)

Küpsised

Küpsised saab kätte objektist self.request.cookies samuti meetodiga get.

kypsis = self.request.cookies.get('kypsis')

Küpsiste seadmine on juba keerulisem, olles sisuliselt samasugune nagu JavaScripti küpsiste seadmine - väärtus tuleb lisada korrektselt vormindatuna vastuse päisesse.

self.response.headers.add_header('Set-Cookie', 'kypsis=%s' % kypsise_vaartus)

Vastusepäise seadmine

Päringule vastates saab erinevaid päiseparameetreid seada kahel viisil. Kas headers.add_header meetodiga lisades või siis headers massiivi elemente lisades/üle kirjutades.

self.response.headers.add_header('Content-Type', 'text/plain')
# või alternatiivselt sama:
self.response.headers['Content-Type'] = 'text/plain'

Kõiki päisevälju ise seada ei saa - juhul kui seda proovida, kirjutatakse väärtus Google App Engine poolt üle. Sellisteks väljadeks on näiteks Content-Length ja Content-Encoding.