SlideShare a Scribd company logo
1 of 28
DJANGO LV.
3Obiettivi di Sezione
DJANGO Lv. 3
PROGRAMMAREINPYT
Si tratta dell’ultima sezione dedicata all’analisi delle
funzionalità principali di Django, prima di passare alla
creazione di un caso d’uso reale, un progetto nella sua
interezza!
Parleremo di Form e validazione degli input utente, e
vedremo come effettuare Registrazione e Login al di
fuori della sezione Admin
DJANGO Lv. 3 – Lezioni
Django Form Handling Process
I Form in Django
Validazione Form
Model Form
Registrazione e Autenticazione
Prova Pratica e Soluzione
PROGRAMMAREINPYT
GESTIONE DEI
FORMDJANGO LV. 2
DJANGO Lv. 3 – Intro Django Form
Un Form HTML è un gruppo di uno o più campi
input/widget in una Pagina Web, che viene usato
per raccogliere dati dagli utenti da inviare al
server
I Form sono versatili: disponiamo di widget per
tantissimi tipi di input, come aree testuali,
checkbox, campi numerici
I Form sono inoltre relativamente sicuri, potendoli
usare sia per richieste HTTP di tipo GET che di
tipo POST PROGRAMMAREINPYT
DJANGO Lv. 3 – Intro Django Form
Scrivere il codice HTML per un form è un
relativamente semplice: si tratta spesso di poche
righe!
Il lavoro si complica iniziando con la creazione di
un sistema in grado di ricevere e processare i dati
inseriti
Tra i compiti da svolgere abbiamo la validazione
dei dati, la comunicazione all’user di eventuali
errori, la gestione e il processing dei dati ricevuti,
e quindi l’invio di una risposta! PROGRAMMAREINPYT
DJANGO Lv. 3 – Intro Django Form
Il compito di ogni buon Framework è proprio
quello di fornirci una struttura che ci consenta di
concentrarci direttamente sul lavoro che
dobbiamo svolgere, senza dover “re-inventare la
ruota”
Django ci fornisce una serie di strumenti che ci
aiutano nella creazione di form in grado di
accettare input dagli utenti, processare questi dati
e fornire una risposta!
PROGRAMMAREINPYT
DJANGO Lv. 3 – Intro Django Form
Fin’ora abbiamo già
usato dei form in
Django, nella sezione
admin: in questa
sezione vedremo
come impiegare i form
in altre aree del sito
PROGRAMMAREINPYT
DJANGO Lv. 3 – Intro Django Form
Prima di passare alla scrittura del codice, analizziamo uno
schema del processo di gestione dei form da parte di
Django!
programmareinpytho
DJANGO Lv. 3 – Intro Django Form
Django Form Handling
Process
Ci riferiamo ai Form come
“unbound” quando non
sono ancora associati con
dati inseriti dall’utente
PROGRAMMAREINPYT
I FORM IN
DJANGOFINE PRIMA PARTE
DJANGO Lv. 3 – I Form in Django
In questa lezione vedremo finalmente come poter
utilizzare i Form in Django, parlando di FORM CLASS,
FORMS API e FORM FIELDS !
Partendo da un nuovo progetto ci occuperemo della
creazione dei Form Django all’interno di un nuovo file
chiamato forms.py, analizzando anche i vari campi che
possiamo assegnare ai Form
Vedremo come utilizzare i Template HTML per mostrare
il Form nella sua interezza, con widget e campi input
Creeremo una Funzione View in grado di processare i
dati inseriti PROGRAMMAREINPYT
DJANGO Lv. 3 – I Form in Django
Link utili dalla Documentazione Ufficiale
Indispensabile come referenza per la creazione di form personalizzati
Working with forms
Form Fields
FORMS API
PROGRAMMAREINPYT
DJANGO Lv. 3 – I Form in Django
INIZIAMO SUBITO!
PROGRAMMAREINPYT
VALIDAZIONE
FORMDJANGO LV. 2
DJANGO Lv. 3 – Validazione Form
In questa lezione vedremo come effettuare semplici
validazioni degli input inseriti dagli utenti, nei nostri Form
Faremo questo sovrascrivendo il metodo
clean_<nome_campo>, usando
django.core.exceptions.ValidationError, gli attributi
required e validators
INIZIAMO SUBITO!
PROGRAMMAREINPYT
MIGLIORAMENTI
GRAFICI
DJANGO LV. 2
DJANGO Lv. 3 – Miglioramenti
GraficiIn questa lezione vedremo come apportare miglioramenti
grafici all’aspetto dei nostri Form
INIZIAMO SUBITO!
PROGRAMMAREINPYT
MODEL FORMDJANGO LV. 3
DJANGO Lv. 3 – Model Form
Quando costruiamo un sito o un’app che fa utilizzo di
database, c’è una buona possibilità di trovarsi a dover
creare form che sono estremamente simili alla definizione
dei modelli della nostra app
Ad esempio, all’interno di un blog, potremmo avere la
necessità di creare dei form che vadano poi a popolare
una tabella nel database associata ad una classe
Commento definita nel file models.py
Per facilitarci il lavoro e rispettare il principio D.R.Y.,
Django ci fornisce la classe django.forms.ModelForm
PROGRAMMAREINPYT
DJANGO Lv. 3 – Model Form
Ciascun ModelForm dispone anche di un metodo save()
che ci permette di creare e modificare oggetti dentro al
database!
Facciamo subito degli esempi!
PROGRAMMAREINPYT
AUTENTICAZI
ONEDJANGO LV. 3
DJANGO Lv. 3 – Autenticazione
In questa lezione parliamo di Autenticazione, e nello specifico
approfondiremo gli aspetti di Login, Logout e Password Reset!
Vedremo come impostare Django per eseguire tutte queste
operazioni al di fuori della Sezione Admin, che ricordiamolo,
non è pensata per l’accesso degli utenti standard!
Il sistema di autenticazione è stato già messo in piedi quando
abbiamo dato il comando django-admin startproject;
tabelle e permessi sono stati settati col primo python
manage.py migrate
PROGRAMMAREINPYT
DJANGO Lv. 3 – Autenticazione
Django ci fornisce quasi tutto ciò di cui abbiamo bisogno per
settare un sistema di autenticazione al di fuori di admin: url
mapper, views e forms; Vedremo quindi come configurare
queste componenti e creeremo quanto mancante: i
Templates!
Troviamo degli esempi di Templates appropriati per
l’autenticazione nella documentazione ufficiale
INIZIAMO!
PROGRAMMAREINPYT
REGISTRAZIO
NEDJANGO LV. 3
DJANGO Lv. 3 – Registrazione
In questa lezione vedremo come creare un sistema di
registrazione!
Per fare questo avremo bisogno di una funzione view con
corrispettivo path url, un form e un template html
INIZIAMO SUBITO!
PROGRAMMAREINPYT
PROVA
PRATICADJANGO LV. 3
DJANGO Lv. 3 – Prova Pratica
La Prova Pratica di questa sezione consiste nella
creazione di una pagina di contatto per un Sito Web:
volendo potete utilizzare parte del codice utilizzato
durante la sezione
Il form di contatto ha i seguenti campi: contatto, email,
oggetto, contenuto
I dati inseriti andranno salvati nel database, in modo da
poterci accedere in un secondo momento dal Pannello di
Amministrazione
PROGRAMMAREINPYT

More Related Content

Similar to Django livello 3 - Guida Pratica e Completa a Django 2 e Bootstrap 4

April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5JBug Italy
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal WebtrendsStefano Iaboni
 
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitNon solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitMaurizio Delmonte
 
Agile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use CaseAgile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use CaseStefano Trojani
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjutadelfinostefano
 
Tech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolTech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolCodemotion
 
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...Meet Magento Italy
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Simone Bussoni
 
Introduzione a..django
Introduzione a..djangoIntroduzione a..django
Introduzione a..djangoLuca Forzutti
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte
 
Sviluppare estensioni per google chrome
Sviluppare estensioni per google chromeSviluppare estensioni per google chrome
Sviluppare estensioni per google chromeMarco Vito Moscaritolo
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8Valerio Radice
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Piero Sbressa
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseAlberto Lagna
 
Laboratorio internet 9: Sviluppo delle funzioni
Laboratorio internet 9: Sviluppo delle funzioniLaboratorio internet 9: Sviluppo delle funzioni
Laboratorio internet 9: Sviluppo delle funzioniRoberto Polillo
 

Similar to Django livello 3 - Guida Pratica e Completa a Django 2 e Bootstrap 4 (20)

April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5April 2010 - Seam unifies JEE5
April 2010 - Seam unifies JEE5
 
3DD 1e Reconfig
3DD 1e Reconfig3DD 1e Reconfig
3DD 1e Reconfig
 
Form e HTML basi
Form e HTML basiForm e HTML basi
Form e HTML basi
 
Training Signal Webtrends
Training Signal WebtrendsTraining Signal Webtrends
Training Signal Webtrends
 
#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2#dd12 grillo daniele_xpages_tips_tricks_rev2
#dd12 grillo daniele_xpages_tips_tricks_rev2
 
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope ToolkitNon solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
Non solo Django: MVC orientato agli oggetti con Plone e Zope Toolkit
 
Agile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use CaseAgile Testing: Come Scrivere Use Case
Agile Testing: Come Scrivere Use Case
 
GUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & AnjutaGUI in Gtk+ con Glade & Anjuta
GUI in Gtk+ con Glade & Anjuta
 
Tech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer ToolTech Webinar: Firefox Developer Tool
Tech Webinar: Firefox Developer Tool
 
App Engine + Python
App Engine + PythonApp Engine + Python
App Engine + Python
 
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...
Giuseppe Mencarelli - TALK Integrazione Magento / ERP – poco fumo e tanto arr...
 
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
Ecommerce: Integrare Joomla! e Magento grazie a Yireo Magebridge per
 
Introduzione a..django
Introduzione a..djangoIntroduzione a..django
Introduzione a..django
 
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.NetAlessandro Forte - Realizzare controlli Ajax in ASP.Net
Alessandro Forte - Realizzare controlli Ajax in ASP.Net
 
DDive11 - xpages
DDive11 - xpagesDDive11 - xpages
DDive11 - xpages
 
Sviluppare estensioni per google chrome
Sviluppare estensioni per google chromeSviluppare estensioni per google chrome
Sviluppare estensioni per google chrome
 
Introduzione ad angular 7/8
Introduzione ad angular 7/8Introduzione ad angular 7/8
Introduzione ad angular 7/8
 
Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015Ttg 09 07_2015_debug_vs_2015
Ttg 09 07_2015_debug_vs_2015
 
Un'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterpriseUn'architettura di riferimento per applicazioni enterprise
Un'architettura di riferimento per applicazioni enterprise
 
Laboratorio internet 9: Sviluppo delle funzioni
Laboratorio internet 9: Sviluppo delle funzioniLaboratorio internet 9: Sviluppo delle funzioni
Laboratorio internet 9: Sviluppo delle funzioni
 

Recently uploaded

Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoyanmeng831
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.camillaorlando17
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxtecongo2007
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptcarlottagalassi
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxlorenzodemidio01
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileNicola Rabbi
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxlorenzodemidio01
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxtecongo2007
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxtecongo2007
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxlorenzodemidio01
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....giorgiadeascaniis59
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................giorgiadeascaniis59
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxtecongo2007
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................giorgiadeascaniis59
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaSalvatore Cianciabella
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxlorenzodemidio01
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxlorenzodemidio01
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxlorenzodemidio01
 

Recently uploaded (19)

Quadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceoQuadrilateri e isometrie studente di liceo
Quadrilateri e isometrie studente di liceo
 
Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.Vuoi girare il mondo? educazione civica.
Vuoi girare il mondo? educazione civica.
 
Aristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptxAristotele, vita e opere e fisica...pptx
Aristotele, vita e opere e fisica...pptx
 
Confronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.pptConfronto tra Sparta e Atene classiche.ppt
Confronto tra Sparta e Atene classiche.ppt
 
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptxLorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
Lorenzo D'Emidio- Lavoro sulla Bioarchittetura.pptx
 
Scrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibileScrittura seo e scrittura accessibile
Scrittura seo e scrittura accessibile
 
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptxScienza Potere Puntoaaaaaaaaaaaaaaa.pptx
Scienza Potere Puntoaaaaaaaaaaaaaaa.pptx
 
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptxLorenzo D'Emidio_Vita e opere di Aristotele.pptx
Lorenzo D'Emidio_Vita e opere di Aristotele.pptx
 
Descrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptxDescrizione Piccolo teorema di Talete.pptx
Descrizione Piccolo teorema di Talete.pptx
 
descrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptxdescrizioni della antica civiltà dei sumeri.pptx
descrizioni della antica civiltà dei sumeri.pptx
 
Tosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptxTosone Christian_Steve Jobsaaaaaaaa.pptx
Tosone Christian_Steve Jobsaaaaaaaa.pptx
 
case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....case passive_GiorgiaDeAscaniis.pptx.....
case passive_GiorgiaDeAscaniis.pptx.....
 
LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................LE ALGHE.pptx ..........................
LE ALGHE.pptx ..........................
 
discorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptxdiscorso generale sulla fisica e le discipline.pptx
discorso generale sulla fisica e le discipline.pptx
 
Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................Oppressi_oppressori.pptx................
Oppressi_oppressori.pptx................
 
Presentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione CivicaPresentazioni Efficaci e lezioni di Educazione Civica
Presentazioni Efficaci e lezioni di Educazione Civica
 
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptxNicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
Nicola pisano aaaaaaaaaaaaaaaaaa(1).pptx
 
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptxLorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
Lorenzo D'Emidio_Vita di Cristoforo Colombo.pptx
 
Lorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptxLorenzo D'Emidio_Francesco Petrarca.pptx
Lorenzo D'Emidio_Francesco Petrarca.pptx
 

Django livello 3 - Guida Pratica e Completa a Django 2 e Bootstrap 4

  • 2. DJANGO Lv. 3 PROGRAMMAREINPYT Si tratta dell’ultima sezione dedicata all’analisi delle funzionalità principali di Django, prima di passare alla creazione di un caso d’uso reale, un progetto nella sua interezza! Parleremo di Form e validazione degli input utente, e vedremo come effettuare Registrazione e Login al di fuori della sezione Admin
  • 3. DJANGO Lv. 3 – Lezioni Django Form Handling Process I Form in Django Validazione Form Model Form Registrazione e Autenticazione Prova Pratica e Soluzione PROGRAMMAREINPYT
  • 5. DJANGO Lv. 3 – Intro Django Form Un Form HTML è un gruppo di uno o più campi input/widget in una Pagina Web, che viene usato per raccogliere dati dagli utenti da inviare al server I Form sono versatili: disponiamo di widget per tantissimi tipi di input, come aree testuali, checkbox, campi numerici I Form sono inoltre relativamente sicuri, potendoli usare sia per richieste HTTP di tipo GET che di tipo POST PROGRAMMAREINPYT
  • 6. DJANGO Lv. 3 – Intro Django Form Scrivere il codice HTML per un form è un relativamente semplice: si tratta spesso di poche righe! Il lavoro si complica iniziando con la creazione di un sistema in grado di ricevere e processare i dati inseriti Tra i compiti da svolgere abbiamo la validazione dei dati, la comunicazione all’user di eventuali errori, la gestione e il processing dei dati ricevuti, e quindi l’invio di una risposta! PROGRAMMAREINPYT
  • 7. DJANGO Lv. 3 – Intro Django Form Il compito di ogni buon Framework è proprio quello di fornirci una struttura che ci consenta di concentrarci direttamente sul lavoro che dobbiamo svolgere, senza dover “re-inventare la ruota” Django ci fornisce una serie di strumenti che ci aiutano nella creazione di form in grado di accettare input dagli utenti, processare questi dati e fornire una risposta! PROGRAMMAREINPYT
  • 8. DJANGO Lv. 3 – Intro Django Form Fin’ora abbiamo già usato dei form in Django, nella sezione admin: in questa sezione vedremo come impiegare i form in altre aree del sito PROGRAMMAREINPYT
  • 9. DJANGO Lv. 3 – Intro Django Form Prima di passare alla scrittura del codice, analizziamo uno schema del processo di gestione dei form da parte di Django! programmareinpytho
  • 10. DJANGO Lv. 3 – Intro Django Form Django Form Handling Process Ci riferiamo ai Form come “unbound” quando non sono ancora associati con dati inseriti dall’utente PROGRAMMAREINPYT
  • 11. I FORM IN DJANGOFINE PRIMA PARTE
  • 12. DJANGO Lv. 3 – I Form in Django In questa lezione vedremo finalmente come poter utilizzare i Form in Django, parlando di FORM CLASS, FORMS API e FORM FIELDS ! Partendo da un nuovo progetto ci occuperemo della creazione dei Form Django all’interno di un nuovo file chiamato forms.py, analizzando anche i vari campi che possiamo assegnare ai Form Vedremo come utilizzare i Template HTML per mostrare il Form nella sua interezza, con widget e campi input Creeremo una Funzione View in grado di processare i dati inseriti PROGRAMMAREINPYT
  • 13. DJANGO Lv. 3 – I Form in Django Link utili dalla Documentazione Ufficiale Indispensabile come referenza per la creazione di form personalizzati Working with forms Form Fields FORMS API PROGRAMMAREINPYT
  • 14. DJANGO Lv. 3 – I Form in Django INIZIAMO SUBITO! PROGRAMMAREINPYT
  • 16. DJANGO Lv. 3 – Validazione Form In questa lezione vedremo come effettuare semplici validazioni degli input inseriti dagli utenti, nei nostri Form Faremo questo sovrascrivendo il metodo clean_<nome_campo>, usando django.core.exceptions.ValidationError, gli attributi required e validators INIZIAMO SUBITO! PROGRAMMAREINPYT
  • 18. DJANGO Lv. 3 – Miglioramenti GraficiIn questa lezione vedremo come apportare miglioramenti grafici all’aspetto dei nostri Form INIZIAMO SUBITO! PROGRAMMAREINPYT
  • 20. DJANGO Lv. 3 – Model Form Quando costruiamo un sito o un’app che fa utilizzo di database, c’è una buona possibilità di trovarsi a dover creare form che sono estremamente simili alla definizione dei modelli della nostra app Ad esempio, all’interno di un blog, potremmo avere la necessità di creare dei form che vadano poi a popolare una tabella nel database associata ad una classe Commento definita nel file models.py Per facilitarci il lavoro e rispettare il principio D.R.Y., Django ci fornisce la classe django.forms.ModelForm PROGRAMMAREINPYT
  • 21. DJANGO Lv. 3 – Model Form Ciascun ModelForm dispone anche di un metodo save() che ci permette di creare e modificare oggetti dentro al database! Facciamo subito degli esempi! PROGRAMMAREINPYT
  • 23. DJANGO Lv. 3 – Autenticazione In questa lezione parliamo di Autenticazione, e nello specifico approfondiremo gli aspetti di Login, Logout e Password Reset! Vedremo come impostare Django per eseguire tutte queste operazioni al di fuori della Sezione Admin, che ricordiamolo, non è pensata per l’accesso degli utenti standard! Il sistema di autenticazione è stato già messo in piedi quando abbiamo dato il comando django-admin startproject; tabelle e permessi sono stati settati col primo python manage.py migrate PROGRAMMAREINPYT
  • 24. DJANGO Lv. 3 – Autenticazione Django ci fornisce quasi tutto ciò di cui abbiamo bisogno per settare un sistema di autenticazione al di fuori di admin: url mapper, views e forms; Vedremo quindi come configurare queste componenti e creeremo quanto mancante: i Templates! Troviamo degli esempi di Templates appropriati per l’autenticazione nella documentazione ufficiale INIZIAMO! PROGRAMMAREINPYT
  • 26. DJANGO Lv. 3 – Registrazione In questa lezione vedremo come creare un sistema di registrazione! Per fare questo avremo bisogno di una funzione view con corrispettivo path url, un form e un template html INIZIAMO SUBITO! PROGRAMMAREINPYT
  • 28. DJANGO Lv. 3 – Prova Pratica La Prova Pratica di questa sezione consiste nella creazione di una pagina di contatto per un Sito Web: volendo potete utilizzare parte del codice utilizzato durante la sezione Il form di contatto ha i seguenti campi: contatto, email, oggetto, contenuto I dati inseriti andranno salvati nel database, in modo da poterci accedere in un secondo momento dal Pannello di Amministrazione PROGRAMMAREINPYT