Læsere som dig hjælper med at støtte MUO. Når du foretager et køb ved hjælp af links på vores websted, kan vi optjene en affiliate-kommission. Læs mere.

Den bedste måde at mestre Django på er at bruge den til at udvikle fuldstack-applikationer. Du vil støde på mange fascinerende funktioner, når du arbejder med rammeværket. En af dem er, hvordan man gengiver formularer i skabeloner ved hjælp af sprøde formularer.

Brug af django-crispy-forms er en af ​​mange måder, du kan gengive formularer i Django. Afhængigheden giver dig mulighed for at oprette formularer i skabeloner uden at skrive HTML-kode. Du kan nemt bygge genbrugelige layouts uden besværet med at skrive formularkode.

Du kan lære mere ved at installere biblioteket, derefter konfigurere det og bruge det til at oprette en registreringsformular.

Sådan fungerer django-sprøde-former

Det django-crispy-forms bibliotek leveres med indbygget HTML-kode, som du kan tilpasse efter dine behov. Det inkluderer et filter med navnet |sprød der gengiver div-baserede formularer i skabelonen.

instagram viewer

Det {% sprøde %} tags vil gengive formularer i henhold til en specifik setup.django-crispy-forms fungerer godt sammen med andre skabelonafhængigheder som Bootstrap og Tailwind CSS.

Lad os se, hvordan det fungerer i en skabelon.

Installer Crispy Forms

Start med oprettelse af et Django-projekt og app. Installer derefter den seneste version af django-crispy-forms ved hjælp af Pipenv med følgende kommando:

pipenv installere django-sprøde-former

En vellykket installation vil se ud som på billedet nedenfor:

Konfigurer django-crispy-forms i indstillingerne

Efter installationen skal du registrere sprøde formularer som en afhængighed i projektindstillingerne. Ved at registrere det, vil det sprøde formularbibliotek være tilgængeligt for alle apps i projektet.

I projektet settings.py fil, skal du tilføje strengen 'sprøde_former':

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'min app',
'sprøde_former',
]

Opret en formular

Du skal synkronisere din registreringsformular med den indbyggede Django-brugeroprettelsesformular for at hjælpe med godkendelse.

Den indbyggede Django brugergodkendelse systemet håndterer almindelige krav som validering af adgangskoder og udstedelse af tilladelser.

Systemet håndterer også formularvalidering for dig. Så du kan oprette formularer uden besværet med selv at håndtere validering. Hvis du har lavet formularvalidering i andre rammer, ved du hvor besværligt det kan være. Ikke med Django.

Godkendelsesmodulet har en Bruger model eller objekt. Det Bruger objekt er hovedkomponenten i brugergodkendelsessystemet. Det håndterer tilladelser, autentificering af registrerede brugeres profiler, adgangskontrol og meget mere.

Det UserCreationForm bruger den indbyggede Bruger gøre indsigelse mod at registrere nye brugere. Det arver fra ModelForm-klassen.

Først skal du importere formularer fra Django-formularmodulet. Importer derefter UserCreationForm fra django.contrib.auth.forms. Importer også den indbyggede Bruger model fra django.contrib.auth.models. Importer derefter feltinput fra django ModelForm.

fra django importere formularer
fradjango.bidrag.auth.formerimportereUserCreationForm
fradjango.bidrag.auth.modellerimportereBruger
fra django.forms importere ModelForm, TextInput, EmailInput, ImageField, Textarea

Opret derefter et registreringsobjekt med navn Registrer BrugerForm. Det tager UserCreationForm som et argument. Tilføj Bruger objektfelter såsom e-mail-godkendelse, brugernavn og to adgangskoder.

klasseRegistrer BrugerForm(UserCreationForm):
email = formularer. EmailField (max_length=254, help_text='Påkrævet. Indtast en gyldig email addresse.')
klasseMeta:
model = Bruger
felter = ('brugernavn', 'e-mail', 'adgangskode1', 'adgangskode 2')

Disse felter er de primære attributter for en bruger på registreringsformularen. De er obligatoriske input, som brugerne skal udfylde, for at systemet kan godkende dem.

Opret en visningsfunktion

Derefter skal du oprette en visningsfunktion til registreringsformularen. Først skal du importere render-funktionen såvel som Registrer BrugerForm fra forms.py. Importer derefter Bruger model fra django.contrib.auth.models.

Visningsfunktionen kaldet register tager Registrer BrugerForm. Det vil gengive det på register.html skabelon.

fra django.genveje importere gengive,
fra django.http importere HttpResponse, Http404
fra .former importere Registrer BrugerForm
fradjango.bidrag.auth.modellerimportereBruger
defTilmeld(anmodning):
form=RegisterUserForm
kontekst={'form':form}
returnere gengivelse (anmodning,'register.html',sammenhæng)

Opret URL-sti

Opret en URL-sti for register.html skabelon. Denne URL er stien til den visningsfunktion, du lige har oprettet. Giv den navnet Tilmeld, så du kan bruge navnet til at kalde det på en skabelon.

fra django.urls importere sti
fra. importere visninger
urlpatterns=[
sti ('Tilmeld', views.register, navn='Tilmeld'),
]

Indlæs på en skabelon

Nu hvor du har visningen og URL-stien, kan du oprette register.html skabelon i app-mappen. Du vil bruge django-crispy-forms til at gengive Registrer BrugerForm.

I den register.html skabelon, forlænge base.html. Det base.html indeholder Bootstrap links du vil bruge til at style registreringsformularen. Indlæs derefter django-crispy-forms med register.html ved hjælp af skabelon-tags.

{% udvides 'base.html' %}
{% load crispy_forms_tags %}
{% bloker indhold %}
<div klasse="beholder" stil="">
<div klasse="række">
<div klasse="col-md-2"></div>
<div klasse="col-md-8">
<div klasse="kort" stil="farve: sort;">
<div klasse="kort-legeme">
<h5 klasse="kort-titel"><-en>Tilmeld dig for at være medlem</en><span stil="flyde: højre">Er du medlem? <a href="#" klasse="tekst-primær">Log ind nu</en></span></h5>
<div klasse="kort-tekst">
<form handling="" metode="STOLPE" ikke validere>
{% csrf_token %}
{{ form|sprødt}}
<knaptype="Indsend" klasse="btn btn-primær btn-sm"> Tilmeld</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% slutblok %}

Skemaet indeholder csrf_token, som beskytter registreringsprocessen mod hackere. Gengiv formularen med samme variabelnavn som i view-funktionen. Tilføj derefter |sprøde filter til Django {{form}} variabel. Dette vil gøre formularen som sprød form.

Kør serveren. Tjek derefter appen i en browser på http://127.0.0.1:8000/register. Du skal se formularen vist som vist nedenfor:

Du har gengivet en registreringsformular ved hjælp af sprøde formularer! Bemærk, at Django automatisk tilføjede validering til formularen. Disse omfatter krav som brugernavn og adgangskodetilladelser.

For at have et komplet tilmeldingssystem skal du tilføje autentificeringslogik til visningsfunktionen. Du kan også tilføje en login-side for at logge på registrerede brugere. Brugere skal opfylde godkendelseskravene for at logge ind på appen.

Django-crispy-forms-biblioteket lader dig hurtigt og nemt gengive validerede formularer. Validering af data sikrer, at du har nøjagtige data fra dine brugere.

Dataene er nyttige, når du kommunikerer med brugere og analyserer præstationsmålinger.

Hvorfor bruge django-sprøde-former?

At bruge det sprøde formularbibliotek til at gengive formularer i Django er et godt eksempel på, hvordan man anvender DRY-princippet. django-crispy-forms skaber genbrugelige komponenter, som du kan gengive i skabeloner.

De kommer med indbygget HTML-kode. Koden sparer dig for besværet med at strukturere og validere formularer. Sprøde formularer giver et tag og et filter, der gengiver formularer i et div-format. De giver også mulighed for at konfigurere og kontrollere den gengivede HTML.

django-crispy-forms fungerer godt med Django-godkendelsessystemet. Du kan oprette et godkendelsessystem for at bekræfte dine brugere uden at skrive meget kode.