Teiesugused lugejad aitavad MUO-d toetada. Kui teete ostu meie saidil olevate linkide abil, võime teenida sidusettevõtte komisjonitasu. Loe rohkem.

Parim viis Django valdamiseks on kasutada seda täispinu rakenduste arendamiseks. Raamistikuga töötades puutute kokku paljude põnevate funktsioonidega. Üks neist on vormide renderdamine mallides, kasutades krõbedaid vorme.

Django-krõbedate vormide kasutamine on üks paljudest viisidest, kuidas Djangos vorme renderdada. Sõltuvus võimaldab teil luua vorme mallides ilma HTML-koodi kirjutamata. Saate hõlpsasti luua korduvkasutatavaid paigutusi ilma vormikoodi kirjutamise vaevata.

Lisateavet saate raamatukogu installimisest, seejärel selle konfigureerimisest ja registreerimisvormi loomisest.

Kuidas django-krõbedad vormid toimivad

The django-krõbedate vormide raamatukogu kaasas on sisseehitatud HTML-kood, mida saate vastavalt oma vajadustele kohandada. See sisaldab filtrit nimega |krõbedaks mis renderdab mallis div-põhiseid vorme.

The {% krõbe %} Tags renderdab vorme vastavalt konkreetsele seadistusele.django-crispy-forms töötab hästi koos muude mallisõltuvustega, nagu Bootstrap ja Tailwind CSS.

instagram viewer

Vaatame, kuidas see mallis töötab.

Installige Crispy Forms

Alusta sellest Django projekti loomine ja rakendus. Seejärel installige django-crispy-formsi uusim versioon, kasutades Pipenv järgmise käsuga:

pipenv installida django-krõbedad vormid

Edukas installimine näeb välja nagu alloleval pildil:

Konfigureerige seadetes django-krõbedad vormid

Pärast installimist peate projekti seadetes registreerima krõbedad vormid sõltuvusena. Selle registreerimisel on krõbedate vormide raamatukogu kättesaadav kõigile projektis osalevatele rakendustele.

Projektis settings.py faili, lisage string 'krõbedad_vormid':

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'minu rakendus',
'krõbedad_vormid',
]

Looge vorm

Autentimise hõlbustamiseks peate oma registreerimisvormi sünkroonima sisseehitatud Django kasutajate loomise vormiga.

Sisseehitatud Django kasutaja autentimine süsteem käsitleb tavalisi nõudeid, nagu paroolide kinnitamine ja lubade väljastamine.

Süsteem tegeleb ka vormi valideerimisega teie eest. Nii saate vorme luua ilma, et peaksite ise valideerimisega tegelema. Kui olete vormi kinnitanud teistes raamistikes, teate, kui tülikas see võib olla. Mitte Djangoga.

Autentimismoodulil on a Kasutaja mudel või objekt. The Kasutaja objekt on kasutaja autentimissüsteemi põhikomponent. See haldab lubasid, registreeritud kasutajate profiilide autentimist, juurdepääsu kontrolli ja palju muud.

The UserCreationForm kasutab sisseehitatud Kasutaja vastulause uute kasutajate registreerimisele. See pärineb ModelFormi klassist.

Esiteks importige vormid Django vormimoodulist. Seejärel importige UserCreationForm alates django.contrib.auth.forms. Samuti importige sisseehitatud Kasutaja mudel alates django.contrib.auth.models. Seejärel importige välja sisendid django ModelFormist.

alates django importida vormid
alatesdjango.panus.auth.vormidimportidaUserCreationForm
alatesdjango.panus.auth.mudelidimportidaKasutaja
alates django.vormid importida ModelForm, TextInput, EmailInput, ImageField, Textarea

Järgmisena looge registreerimisobjekt nimega Registreeri kasutajavorm. See võtab UserCreationForm argumendina. Lisage Kasutaja objektiväljad, nagu meili autentimine, kasutajanimi ja kaks parooli.

klassRegistreeri kasutajavorm(User CreationForm):
email = vormid. Meiliväli (max_length=254, help_text='Nõutud. Sisestage kehtiv emaili aadress.')
klassMeta:
mudel = kasutaja
väljad = ('kasutajanimi', 'email', 'parool1', 'parool2')

Need väljad on registreerimisvormi kasutaja esmased atribuudid. Need on kohustuslikud sisendid, mille kasutajad peavad täitma, et süsteem saaks neid autentida.

Looge vaatefunktsioon

Järgmisena loote registreerimisvormi jaoks kuvamisfunktsiooni. Esiteks importige renderdusfunktsioon ja Registreeri kasutajavorm vormidest.py. Seejärel importige Kasutaja mudel alates django.contrib.auth.models.

Vaatefunktsioon nimega register võtab Registreeri kasutajavorm. See renderdab selle lehel register.html malli.

alates django.otseteed importida renderdama,
alates django.http importida HttpResponse, Http404
alates .vormid importida Registreeri kasutajavorm
alatesdjango.panus.auth.mudelidimportidaKasutaja
defRegistreeri(taotlus):
form=RegisterUserForm
kontekst={'vormi':vorm}
tagasta renderdus (taotlus,'register.html',Sisu)

Loo URL-i tee

Looge URL-i tee Selle eest register.html malli. See URL on äsja loodud vaatefunktsiooni tee. Andke sellele nimi Registreeri, nii et saate selle nime abil mallil nimetada.

alates django.urls importida tee
alates. importida vaated
urlpatterns=[
tee ('Registreeri', views.register, name='Registreeri'),
]

Laadige mall

Nüüd, kui teil on vaade ja URL-i tee, saate luua register.html mall rakenduse kaustas. Renderdamiseks kasutate django-crispy-vorme Registreeri kasutajavorm.

Aastal register.html malli, laiendage base.html. The base.html sisaldab Alglaadimislingid mida kasutate registreerimisvormi stiili kujundamiseks. Seejärel laadige django-crispy-vormid koos register.html-iga, kasutades mallisilte.

{% pikendab 'base.html' %}
{% load crispy_forms_tags %}
{% blokeerida sisu %}
<div klass="konteiner" stiil="">
<div klass="rida">
<div klass="col-md-2"></div>
<div klass="col-md-8">
<div klass="kaardile" stiil="värv: must;">
<div klass="kaart-keha">
<h5 klass="kaardi pealkiri"><a>Registreeru liikmeks</a><span style="ujuk: õige">Kas olete liige? <a href="#" klass="tekst-esmane">Logi sisse nüüd</a></span></h5>
<div klass="kaart-tekst">
<vormi tegevus="" meetod ="POSTITA" novalideerida>
{% csrf_token %}
{{ vorm|krõbe}}
<nupu tüüp="Esita" klass="btn btn-esmane btn-sm"> Registreeri</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}

Vorm sisaldab csrf_token, mis kaitseb registreerimisprotsessi häkkerite eest. Renderdage vorm sama muutujanimega nagu vaatefunktsioonis. Seejärel lisage |krõbedaks filter Django {{vorm}} muutuv. See muudab vormi krõbedaks vormiks.

Käivitage server. Seejärel kontrollige rakendust brauseris aadressil http://127.0.0.1:8000/register. Peaksite nägema allpool näidatud vormi:

Olete krõbedaid vorme kasutades vormindanud registreerimisvormi! Pange tähele, et Django lisas vormile automaatselt valideerimise. Nende hulka kuuluvad nõuded, nagu kasutajanime ja parooli õigused.

Täieliku registreerimissüsteemi saamiseks lisage vaatamisfunktsioonile autentimisloogika. Registreeritud kasutajate sisselogimiseks saate lisada ka sisselogimislehe. Kasutajad peavad rakendusse sisselogimiseks täitma autentimisnõuded.

Django-krõbeda vormide teek võimaldab teil kiiresti ja lihtsalt renderdada kinnitatud vorme. Andmete kinnitamine tagab, et teil on kasutajatelt täpsed andmed.

Andmed tulevad kasuks kasutajatega suhtlemisel ja toimivusmõõdikute analüüsimisel.

Miks kasutada django-krõbedaid vorme?

Krõbedate vormide teegi kasutamine vormide renderdamiseks Djangos on suurepärane näide DRY põhimõtte rakendamisest. django-crispy-forms loob korduvkasutatavaid komponente, mida saate mallides renderdada.

Neil on sisseehitatud HTML-kood. Kood säästab teid vormide struktureerimise ja kinnitamise vaevast. Krõbedad vormid pakuvad sildi ja filtrit, mis renderdab vormid div-vormingus. Samuti võimaldavad need renderdatud HTML-i konfigureerida ja juhtida.

django-crispy-forms töötab hästi Django autentimissüsteemiga. Saate luua autentimissüsteemi, et kontrollida oma kasutajaid ilma palju koodi kirjutamata.