I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Il modo migliore per padroneggiare Django è usarlo per sviluppare applicazioni full-stack. Ti imbatterai in molte caratteristiche affascinanti quando lavori con il framework. Uno di questi è come rendere i moduli nei modelli utilizzando i moduli croccanti.

L'uso di django-crispy-forms è uno dei tanti modi in cui puoi rendere i form in Django. La dipendenza consente di creare moduli nei modelli senza scrivere codice HTML. Puoi facilmente creare layout riutilizzabili senza il fastidio di scrivere il codice del modulo.

Puoi saperne di più installando la libreria, quindi configurandola e utilizzandola per creare un modulo di registrazione.

Come funziona Django-crispy-forms

IL libreria django-crispy-forms viene fornito con codice HTML integrato che puoi personalizzare in base alle tue esigenze. Include un filtro denominato |croccante che esegue il rendering dei moduli basati su div nel modello.

instagram viewer

IL {% croccante %} tags eseguirà il rendering dei moduli in base a una configurazione specifica. django-crispy-forms funziona bene con altre dipendenze del modello come Bootstrap e Tailwind CSS.

Vediamo come funziona in un modello.

Installa moduli croccanti

A partire da creazione di un progetto Django e app. Quindi installa l'ultima versione di django-crispy-forms usando Pipenv con il seguente comando:

pipenv installare forme-django-croccanti

Un'installazione corretta avrà l'aspetto dell'immagine seguente:

Configura django-crispy-forms nelle Impostazioni

Dopo l'installazione, è necessario registrare i moduli croccanti come dipendenza nelle impostazioni del progetto. Registrandola, la libreria crispy forms sarà disponibile per tutte le app del progetto.

Nel progetto impostazioni.py file, aggiungi la stringa 'forme_croccanti':

APP_INSTALLATE = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'crispy_forms',
]

Crea un modulo

È necessario sincronizzare il modulo di registrazione con il modulo di creazione utente Django integrato per facilitare l'autenticazione.

Il built-in Autenticazione utente Django il sistema gestisce i requisiti comuni come la convalida delle password e il rilascio delle autorizzazioni.

Il sistema gestisce anche la convalida del modulo per te. Quindi puoi creare moduli senza il fastidio di gestire tu stesso la convalida. Se hai eseguito la convalida del modulo in altri framework, saprai quanto può essere ingombrante. Non con Django.

Il modulo di autenticazione ha un Utente modello o oggetto. IL Utente oggetto è il componente principale del sistema di autenticazione dell'utente. Gestisce le autorizzazioni, l'autenticazione dei profili degli utenti registrati, il controllo degli accessi e molto altro.

IL UserCreationForm utilizza il built-in Utente opporsi alla registrazione di nuovi utenti. Eredita dalla classe ModelForm.

Innanzitutto, importa i moduli dal modulo modulo Django. Quindi, importa il file UserCreationForm da django.contrib.auth.forms. Inoltre, importa il file integrato Utente modello da django.contrib.auth.models. Quindi importare gli input del campo da django ModelForm.

da django importare forme
dadjango.contrib.auth.formeimportareUserCreationForm
dadjango.contrib.auth.ModelliimportareUtente
da django.forms importare ModelForm, TextInput, EmailInput, ImageField, Textarea

Successivamente, crea un oggetto di registrazione denominato RegisterUserForm. Ci vuole il UserCreationForm come argomento. Aggiungi il Utente campi oggetto come autenticazione e-mail, nome utente e due password.

classeRegisterUserForm(Modulo Creazione Utente):
e-mail = moduli. EmailField (max_length=254, help_text='Necessario. Inserire un indirizzo email valido.')
classeMeta:
modello = Utente
campi = ('nome utente', 'e-mail', 'parola d'ordine1', 'parola d'ordine2')

Questi campi sono gli attributi primari di un utente nel modulo di registrazione. Sono input obbligatori che gli utenti devono compilare affinché il sistema li autentichi.

Crea una funzione di visualizzazione

Successivamente, creerai una funzione di visualizzazione per il modulo di registrazione. Innanzitutto, importa la funzione di rendering e il file RegisterUserForm da form.py. Quindi importa il file Utente modello da django.contrib.auth.models.

La funzione di visualizzazione denominata register accetta il file RegisterUserForm. Lo renderà sul register.html modello.

da django.scorciatoie importare rendere,
da django.http importare HttpResponse, Http404
da .forme importare RegisterUserForm
dadjango.contrib.auth.ModelliimportareUtente
defRegistrati(richiesta):
form=RegistraUserForm
contesto={'modulo':modulo}
reso reso (richiesta,'register.html',contesto)

Crea percorso URL

Crea un percorso URL per il register.html modello. Questo URL è il percorso per la funzione di visualizzazione appena creata. Dagli il nome Registrati, quindi puoi usare il nome per chiamarlo su un modello.

da django.urls importare sentiero
da. importare visualizzazioni
schemi URL=[
sentiero ('Registrati', views.register, nome='Registrati'),
]

Carica su un modello

Ora che hai la vista e il percorso dell'URL, puoi creare il file register.html modello nella cartella dell'app. Utilizzerai django-crispy-forms per rendere il file RegisterUserForm.

Nel register.html modello, estendere il base.html. IL base.html contiene il Collegamenti bootstrap utilizzerai per definire lo stile del modulo di registrazione. Quindi caricare i moduli django-crispy con register.html utilizzando i tag modello.

{% estende 'base.html' %}
{% carica crispy_forms_tags %}
{% blocca contenuto %}
<classe div="contenitore" stile="">
<classe div="riga">
<classe div="col-md-2"></div>
<classe div="col-md-8">
<classe div="carta" stile="colore nero;">
<classe div="corpo della carta">
<classe h5="titolo della carta"><UN>Registrati per essere un membro</UN><stile span="galleggiante: giusto">Sei un membro? <a href="#" classe="testo-primario">Accedi ora</UN></span></h5>
<classe div="testo-carta">
<forma azione="" metodo="INVIARE" non convalidare>
{% csrf_token %}
{{ form|croccante}}
<tipo di pulsante="invia" classe="btn btn-primario btn-sm"> Registrati</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% blocco finale %}

Il modulo include il csrf_token, che protegge il processo di registrazione dagli hacker. Renderizza il form con lo stesso nome di variabile della funzione view. Quindi aggiungi il |croccante filtro per Django {{modulo}} variabile. Questo renderà la forma come una forma croccante.

Eseguire il server. Quindi, controlla l'app in un browser all'indirizzo http://127.0.0.1:8000/register. Dovresti vedere il modulo visualizzato come illustrato di seguito:

Hai reso un modulo di registrazione utilizzando moduli croccanti! Si noti che Django ha aggiunto automaticamente la convalida al modulo. Questi includono requisiti come autorizzazioni per nome utente e password.

Per avere un sistema di registrazione completo, aggiungi la logica di autenticazione alla funzione di visualizzazione. Puoi anche aggiungere una pagina di accesso per accedere agli utenti registrati. Gli utenti devono soddisfare i requisiti di autenticazione per accedere all'app.

La libreria django-crispy-forms ti consente di rendere rapidamente e facilmente i moduli convalidati. La convalida dei dati ti assicura di avere dati accurati dai tuoi utenti.

I dati sono utili quando si comunica con gli utenti e si analizzano le metriche delle prestazioni.

Perché usare Django-crispy-forms?

L'uso della libreria di moduli croccanti per il rendering dei moduli in Django è un ottimo esempio di come applicare il principio DRY. django-crispy-forms crea componenti riutilizzabili che puoi rendere nei modelli.

Sono dotati di codice HTML integrato. Il codice ti farà risparmiare il fastidio di strutturare e convalidare i moduli. I moduli croccanti forniscono un tag e un filtro che visualizza i moduli in un formato div. Forniscono inoltre la possibilità di configurare e controllare l'HTML renderizzato.

django-crispy-forms funziona bene con il sistema di autenticazione Django. Puoi creare un sistema di autenticazione per verificare i tuoi utenti senza scrivere molto codice.