Guide

Guida all'elaborazione e alla validazione dei dati POST con Django

Ecco la guida sull'elaborazione dei dati passati via POST con Django. Guida all'elaborazione e alla validazione dei dati POST con Django su Coders Italia.

django-copertina

Guida alle richieste HTTP POST con Django

Benvenuto in questa guida all’elaborazione e alla validazione dei dati POST con Django.
In questa breve guida andremo a spiegare come effettuare la validazione di dati POST di un form, il tutto utilizzando Python e Django
Partiamo subito.
Questo è il nostro from di Django:

from django import forms
class MioForm(forms.Form):
   primo = forms.CharField(label='Primo campo', max_length=100)
   secondo = forms.IntegerField(label='Secondo campo', max_length=100)
   terzo = forms.IntegerField(label='Terzo campo', max_length=100)

Dunque possiamo creare il nostro form in HTML:

<form action="/applicazione/url-della-tua-views/" method="post">
   {% csrf_token %}
   <label for="primo">Primo campo: </label>
   <input id="primo" type="text" name="primo" maxlength="100" required />
   <label for="secondo">Secondo campo: </label>
   <input id="secondo" type="text" name="secondo" maxlength="100" required />
   <label for="terzo">Terzo campo: </label>
   <input id="terzo" type="text" name="terzo" maxlength="100" required />
   <input type="submit" value="Submit" />
</form>

Oppure possiamo renderizzarlo con {{form}}, è uguale:

<form action="/applicazione/views-di-prova/" method="post">
   {% csrf_token %}
   {{ form }}
   <input type="submit" value="Invia dati" />
</form>

Tra i due esempi di codice HTML preferisco il primo, perchè rende più facile aggiungere il CSS ai vari elementi (nel secondo caso come vedete noi mettiamo {{form}} ed è Django a scrivere l’HTML al nostro posto). Andiamo avanti.
Ecco come sarà il views.py della nostra applicazione

def validazione_form(request): # Ovviamente l'urls.py rimanda l'url /applicazione/views-di-prova/ a questa views
   if request.method == 'POST':
       form = MioForm(request.POST, request.FILES)
       if not form.is_valid():
           # stampa qualche errore qui
       else:
           primo_campo = request.POST.get("primo", "")
           secondo_campo = request.POST.get("secondo", "")
           terzo_campo = request.POST.get("terzo", "")
           # ok, fai quello che devi fare

Fatto, ecco spiegato brevemente quello che succede: al click sul pulsante “Invia dati” viene inviata una richiesta HTTP Post all’indirizzo “<vostro_sito>/applicazione/views-di-prova/”. Il tuo urls.py rimanda alla views qui mostrata che attaverso la funzione is_valid() permette di capire se il form è stato validato correttamente o meno.
In questo caso abbiamo raccolto i dati da un form ma la procedura e identica per qualsiasi richiesta HTTP POST: con “if request.method == ‘POST’:” verifichiamo, nella views, che si tratti di una chiamata post e raccogliamo i vari dati con request.POST.get().
Ovviamente si possono anche effettuare chiamate AJAX dal client per poi dal server ritornare una HttpResponse con una parola o del testo in JSON.
Se vuoi vedere come fare per validare ciascun campo del form in modo particolare (es. un numero che deve essere compreso tra 0 e 20) guarda la nostra guida.
Alla prossima!

Articoli correlati

Vedi tutti
creare blog aziendale

Creare un blog aziendale – in 4 passi, facilmente

Hai capito che per fare business conviene aprire un blog aziendale ma non sai da dove iniziare. Se ho indovinato, ho una bella notizia: in questo articolo ti spiegherò esattamente cosa fare – avrai aperto il tuo blog entro oggi! 1 – Blog aziendale, da zero con WordPress La prima cosa da fare è creare […]

Leggi articolo

Cosa rende Coders Italia differente

Perché Codersitalia?

Know-how da multinazionale tech, con tempi e costi da software house indipendente. Investimenti proporzionati al risultato e un'assistenza presente ed efficace.

Tecnologie avanzate, a misura di PMI Portiamo nelle piccole e medie imprese metodi, esperienza e tecnologie da contesti tech d'avanguardia, inclusa l'AI: soluzioni evolute, pratiche e senza investimenti da grande azienda. Innovazione accessibile per PMI
Costi proporzionati al risultato Evitiamo pacchetti gonfiati, moduli venduti a pezzi e aumenti difficili da giustificare. Il costo deve essere coerente con l'impatto reale per la vostra azienda. Costi proporzionati al valore
Gestione chiara e trasparente Niente ticket macchinosi o risposte vaghe: avete un referente, tempi chiari, aggiornamenti comprensibili e confini definiti tra incluso ed extra. Referente, tempi e confini chiari

Analisi gratuita

Richiedi un'analisi gratuita.

Analizziamo il contesto, i problemi principali e le possibili strade per intervenire con una soluzione proporzionata.

+39 02 73103 524