Čitatelia ako vy pomáhajú podporovať MUO. Keď uskutočníte nákup pomocou odkazov na našej stránke, môžeme získať pridruženú províziu. Čítaj viac.

Najlepší spôsob, ako zvládnuť Django, je použiť ho na vývoj full-stack aplikácií. Pri práci s rámcom sa stretnete s mnohými fascinujúcimi funkciami. Jedným z nich je spôsob vykresľovania formulárov v šablónach pomocou chrumkavých formulárov.

Použitie django-crispy-forms je jedným z mnohých spôsobov, ako môžete vykresliť formuláre v Django. Závislosť vám umožňuje vytvárať formuláre v šablónach bez písania HTML kódu. Môžete ľahko vytvárať opakovane použiteľné rozloženia bez problémov s písaním kódu formulára.

Viac sa dozviete po inštalácii knižnice, jej konfigurácii a jej použití na vytvorenie registračného formulára.

Ako funguje django-crispy-forms

The knižnica django-crispy-forms prichádza so vstavaným HTML kódom, ktorý si môžete prispôsobiť podľa svojich potrieb. Obsahuje filter s názvom |chrumkavé ktorý vykresľuje formuláre založené na div v šablóne.

instagram viewer

The {% chrumkavý %} tags vykreslí formuláre podľa špecifického nastavenia. django-crispy-forms funguje dobre s inými závislosťami šablón, ako sú Bootstrap a Tailwind CSS.

Pozrime sa, ako to funguje v šablóne.

Nainštalujte Crispy Forms

Začnite tým vytvorenie projektu Django a app. Potom nainštalujte najnovšiu verziu django-crispy-forms pomocou Pipenv s nasledujúcim príkazom:

pipenv Inštalácia django-chrumkavé-formy

Úspešná inštalácia bude vyzerať ako na obrázku nižšie:

Nakonfigurujte django-crispy-forms v Nastaveniach

Po inštalácii musíte zaregistrovať chrumkavé formuláre ako závislosť v nastaveniach projektu. Po registrácii bude knižnica chrumkavých formulárov dostupná pre všetky aplikácie v projekte.

V projekte settings.py súbor, pridajte reťazec 'crispy_forms':

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.správy',
'django.contrib.staticfiles',
'moja aplikácia',
'chrumkavé_formy',
]

Vytvorte formulár

Musíte synchronizovať svoj registračný formulár so vstavaným formulárom na vytvorenie používateľa Django, ktorý vám pomôže s autentifikáciou.

Vstavaný Overenie používateľa Django systém spracováva bežné požiadavky, ako je overovanie hesiel a vydávanie povolení.

Systém za vás rieši aj validáciu formulárov. Môžete tak vytvárať formuláre bez toho, aby ste sa museli sami zaoberať validáciou. Ak ste overili formulár v iných rámcoch, budete vedieť, aké to môže byť ťažkopádne. Nie s Djangom.

Autentifikačný modul má a Používateľ model alebo objekt. The Používateľ objekt je hlavnou súčasťou systému autentifikácie užívateľa. Zaoberá sa povoleniami, overovaním profilov registrovaných používateľov, riadením prístupu a oveľa viac.

The UserCreationForm používa vstavaný Používateľ namietať proti registrácii nových používateľov. Dedí z triedy ModelForm.

Najprv importujte formuláre z modulu formulárov Django. Potom importujte súbor UserCreationForm od django.contrib.auth.forms. Tiež importujte vstavané Používateľ model z django.contrib.auth.modely. Potom importujte vstupy polí z django ModelForm.

od django importovať formulárov
oddjango.prispieť.auth.formuláreimportovaťUserCreationForm
oddjango.prispieť.auth.modelkyimportovaťPoužívateľ
od django.forms importovať ModelForm, TextInput, EmailInput, ImageField, Textarea

Ďalej vytvorte objekt registrácie s názvom RegisterUserForm. Trvá to UserCreationForm ako argument. Pridajte Používateľ objektové polia, ako je overenie e-mailu, používateľské meno a dve heslá.

triedaRegisterUserForm(UserCreationForm):
email = formuláre. EmailField (max_length=254, help_text='Požadovaný. Zadajte platnú e-mailovú adresu.')
triedaMeta:
model = Používateľ
polia = ('užívateľské meno', 'email', 'heslo1', 'heslo2')

Tieto polia sú hlavnými atribútmi používateľa v registračnom formulári. Sú to povinné vstupy, ktoré musia používatelia vyplniť, aby ich systém overil.

Vytvorte funkciu zobrazenia

Ďalej vytvoríte funkciu zobrazenia pre registračný formulár. Najprv importujte funkciu vykresľovania, ako aj RegisterUserForm z formulárov.py. Potom importujte Používateľ model z django.contrib.auth.modely.

Funkcia zobrazenia s názvom register preberá RegisterUserForm. Vykreslí to na register.html šablóna.

od django.skratky importovať vykresliť,
od django.http importovať HttpResponse, Http404
od .formuláre importovať RegisterUserForm
oddjango.prispieť.auth.modelkyimportovaťPoužívateľ
defRegistrovať(žiadosť):
form=RegisterUserForm
kontext={'formulár':form}
vrátiť render (žiadosť,'register.html',kontext)

Vytvorte cestu URL

Vytvorte cestu URL pre register.html šablóna. Táto adresa URL je cesta k funkcii zobrazenia, ktorú ste práve vytvorili. Daj tomu meno Registrovať, takže ho môžete použiť na zavolanie v šablóne.

od django.urls importovať cesta
od. importovať názory
urlpatterns=[
cesta ('Registrovať', views.register, name='Registrovať'),
]

Načítať šablónu

Teraz, keď máte zobrazenie a cestu URL, môžete vytvoriť súbor register.html šablónu v priečinku aplikácie. Na vykreslenie použijete django-crispy-forms RegisterUserForm.

V register.html šablónu, predĺžte base.html. The base.html obsahuje Bootstrap odkazy použijete na štylizáciu registračného formulára. Potom nahrajte django-crispy-forms s register.html pomocou značiek šablón.

{% predlžuje 'base.html' %}
{% zaťaženie crispy_forms_tags %}
{% block content %}
<trieda div="kontajner" štýl="">
<trieda div="riadok">
<trieda div="col-md-2"></div>
<trieda div="col-md-8">
<trieda div="kartu" štýl="farba: čierna;">
<trieda div="telo karty">
<h5 trieda="titulok karty"><a>Zaregistrujte sa ako člen</a><span style="plavák: vpravo">Ste členom? <a href="#" trieda="text-primárny">Prihlás sa teraz</a></span></h5>
<trieda div="text karty">
<forma akcia="" metóda ="POST" novalidovať>
{% csrf_token %}
{{form|chrumkavé}}
<typ tlačidla ="Predložiť" trieda="btn btn-primárny btn-sm"> Registrovať</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% koncový blok %}

Formulár obsahuje csrf_token, ktorý chráni proces registrácie pred hackermi. Vyrenderujte formulár s rovnakým názvom premennej ako vo funkcii zobrazenia. Potom pridajte |chrumkavý filtrovať na Django {{form}} premenlivý. To spôsobí, že forma bude chrumkavá.

Spustite server. Potom skontrolujte aplikáciu v prehliadači na adrese http://127.0.0.1:8000/register. Mali by ste vidieť formulár zobrazený podľa obrázka nižšie:

Vytvorili ste registračný formulár pomocou chrumkavých formulárov! Všimnite si, že Django automaticky pridal overenie do formulára. Patria sem požiadavky, ako sú povolenia pre používateľské meno a heslo.

Ak chcete mať úplný systém registrácie, pridajte do funkcie zobrazenia logiku autentifikácie. Môžete tiež pridať prihlasovaciu stránku na prihlásenie registrovaných používateľov. Používatelia by mali spĺňať požiadavky na overenie, aby sa mohli prihlásiť do aplikácie.

Knižnica django-crispy-forms vám umožňuje rýchlo a jednoducho vykresliť overené formuláre. Overovanie údajov zaisťuje, že máte presné údaje od vašich používateľov.

Údaje sú užitočné pri komunikácii s používateľmi a analýze metrík výkonnosti.

Prečo používať django-chrumkavé formy?

Použitie knižnice chrumkavých formulárov na vykreslenie formulárov v Django je skvelým príkladom toho, ako aplikovať princíp DRY. django-crispy-forms vytvára opakovane použiteľné komponenty, ktoré môžete vykresliť v šablónach.

Dodávajú sa so vstavaným HTML kódom. Kód vám ušetrí starosti so štruktúrovaním a overovaním formulárov. Chrumkavé formuláre poskytujú značku a filter, ktorý vykresľuje formuláre vo formáte div. Poskytujú tiež možnosť konfigurovať a ovládať vykreslený HTML.

django-crispy-forms funguje dobre s autentifikačným systémom Django. Môžete si vytvoriť autentifikačný systém na overenie svojich používateľov bez toho, aby ste museli písať veľa kódu.