Gae python gdg milano L03

16
App Engine Take Off Aprile 2015 Python Il framework: webapp2 GDG Milano - Paolo Dadda - 2DWeb Milano, 15 aprile 2015 @TalentGarden, Via Merano, 16 #gae #gdgmilano

Transcript of Gae python gdg milano L03

App Engine Take OffAprile 2015PythonIl framework: webapp2

GDG Milano - Paolo Dadda - 2DWebMilano, 15 aprile 2015 @TalentGarden, Via Merano, 16

#gae #gdgmilano

Aprile 2015Google App Engine

PythonIl framework: webapp2

#gae #gdgmilano

Paolo Dadda

Membro IWA ITALY nr. 0307429 Professionista Web ai sensi della Legge 4/2013

Contatti:Tel.: 393.4298004

Ufficio: Via 4 Novembre, 94 Cislago (VA) WebSite: www.2dweb.it

Mail: [email protected]

Cosa vedremo oggi?

- GET & POST con Webapp2- Variabili via URL- Inviare una E-Mail con Webapp2

- CodeLab !Verrà inoltre rilasciato il codice per “essere sempre tutti allo stesso punto”

Piano delle lezioni Lezione 1 (Febbraio 2015)

Introduzione Lezione 2 (Marzo 2015)

WebApp2 & Basi per uso di Model, Template, Handler Lezione 3 (Aprile 2015)

Handler, Mail, Get, Post Lezione 4 (Maggio 2015)

Model, Upload, Memcache Lezione 5 (Giugno 2015)

Template, Jinja2, Exception Lezione 6 (Luglio 2015)

Blobstore & Google Cloud Storage

Cosa succede quando viene aperta una pagina web?

Le richieste sul Web

sono principalmenteGET & POST

Metodi HTTP• L’Hypertext Transfer Protocol (HTTP)

è progettato per consentire le comunicazioni tra client e server; è un protocollo di richiesta-risposta tra client e server.

• GET

• POST

• HEAD

• PUT

• DELETE

• OPTIONS

• CONNECT

HTTP: GET & POSTIl metodo GET Si noti che la stringa query (coppie nome/valore) viene inviata nella URL di una richiesta GET: /test/demo_form?name1=value1&name2=value2

Altre note su richieste GET: • Possono essere memorizzati nella cache • Rimangono nella cronologia del browser • Possono essere aggiunte ai preferiti • Non dovrebbero mai essere utilizzati quando si tratta di dati sensibili • Hanno limiti di lunghezza • Devono essere utilizzati solo per recuperare i dati

Il metodo POST Si noti che la stringa query (coppie nome/valore) viene inviata nel corpo del messaggio HTTP di una rich. POST: POST /test/demo_form HTTP/1.1 Host: w3schools.com name1=value1&name2=value2

Altre note su richieste POST: • Non vengono mai memorizzate nella cache • Non rimangono nella cronologia del browser • Non possono essere aggiunte ai preferiti • Non hanno restrizioni sulla lunghezza dei dati

Fonte: www.w3schools.com

Il framework: Webapp2

https://webapp-improved.appspot.com/

La documentazione di GAE - Python

https://cloud.google.com/appengine/docs/python/

Request GET & POST(dalla documentazione Webapp2)

VALORI SINGOLI

VALORI MULTIPLI

DIZIONARIO

Request GET & POST(dalla documentazione Webapp2)

VALORI SINGOLI

VALORI MULTIPLI

Forma “abbreviata”

Funziona anche per i Cookies

Leggere e Scrivere Variabili da URL

DIZIONARIO !!!

Inviare E-Mail(dalla documentazione GAE-Python https://cloud.google.com/appengine/docs/python/mail/)

2

1

Risorse e codice:

Webapp2 sito ufficiale:https://webapp-improved.appspot.com/Documentazione GAE Python:https://cloud.google.com/appengine/docs/python/

File e base per siti web App Engine (già visto nello scorso incontro)https://bitbucket.org/duedweb/base-gae-pythonFile “allineamento” fine giornata nella cartella dedicata all’eventohttp://bit.ly/eventi-gdg-milano (Aprire poi la cartella App Engine Take Off)

Indirizzo per questa slide:http://www.slideshare.net/ilpaolino/gae-python-gdg-milano-l03

Domande??? ?

Pausa Caffè, poi CodeLab! 5 minuti

CodeLab !

Realizziamo la prima parte del sito sull’Evento Tal dei Tali

• Realizzare una pagina html con un form per l’invio dei dati

• Recupero dei dati tramite POST • FACOLTATIVO: aggiungi un controllo lato server per verificare che sia stata messa la

spunta su una checkbox

• Invio dei dati di iscrizione tramite E-Mail • FACOLTATIVO: consultando la documentazione implementa l’invio tramite oggetto • FACOLTATIVO: invia la mail a due indirizzi (iscritto e organizzatore)

• FACOLTATIVO: tramite una variabile nell’URL, il form funge da richiesta di contatto oppure da iscrizione