In questa serie di incontri vedremo insieme come funziona la piattaforma PaaS di Google App Engine, in particolare con il linguaggio Python. Lo scopo principale sarà spiegare come funziona la piattaforma e realizzare piccole demo e/o snippets che possano tornare utili per lo sviluppo di tutti i giorni. Le serate saranno focalizzate su un topic specifico, iniziando da situazioni semplici ed adatte a tutti, addentrandosi poi, man mano, in situazioni sempre più specifiche.
1. 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
2. Aprile 2015
Google App Engine
Python
Il 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: info@2dweb.it
3. 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
6. 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
7. HTTP: GET & POST
Il 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
14. 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-python
File “allineamento” fine giornata nella cartella dedicata all’evento
http://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?
?? ?
16. 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