Paras tapa hallita Django on käyttää sitä täyden pinon sovellusten kehittämiseen. Tulet kohtaamaan monia kiehtovia ominaisuuksia, kun työskentelet kehyksen kanssa. Yksi niistä on lomakkeiden hahmontaminen malleissa rapeilla lomakkeilla.
Django-crispy-forms -muotojen käyttäminen on yksi monista tavoista renderöidä lomakkeita Djangossa. Riippuvuuden avulla voit luoda lomakkeita malleihin kirjoittamatta HTML-koodia. Voit helposti rakentaa uudelleenkäytettäviä asetteluja ilman lomakekoodin kirjoittamisen vaivaa.
Saat lisätietoja asentamalla kirjaston, määrittämällä sen ja luomalla sen avulla rekisteröintilomakkeen.
Miten django-crispy-muodot toimii
The django-crispy-forms -kirjasto mukana tulee sisäänrakennettu HTML-koodi, jota voit muokata tarpeidesi mukaan. Se sisältää suodattimen nimeltä |rapeaksi joka hahmontaa div-pohjaiset lomakkeet mallissa.
The {% rapeaa %} tagswill renderöi lomakkeet tietyn setupin mukaan.django-crispy-forms toimii hyvin muiden malliriippuvuuksien, kuten Bootstrapin ja Tailwind CSS: n, kanssa.
Katsotaan kuinka se toimii mallissa.
Asenna Crispy Forms
Aloita Django-projektin luominen ja sovellus. Asenna sitten uusin versio django-crispy-formsista Pipenvillä seuraavalla komennolla:
pipenv Asentaa django-rapeat-muodot
Onnistunut asennus näyttää alla olevalta kuvalta:
Määritä django-crispy-lomakkeet asetuksista
Asennuksen jälkeen rapeat lomakkeet on rekisteröitävä riippuvuudeksi projektiasetuksiin. Rekisteröimällä rapeat lomakkeet -kirjasto on kaikkien projektin sovellusten käytettävissä.
Projektissa settings.py tiedosto, lisää merkkijono 'crispy_forms':
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
'crispy_forms',
]
Luo lomake
Sinun on synkronoitava rekisteröintilomakkeesi sisäänrakennetun Django-käyttäjien luontilomakkeen kanssa todennuksen helpottamiseksi.
Sisäänrakennettu Django-käyttäjien todennus järjestelmä käsittelee yleisiä vaatimuksia, kuten salasanojen vahvistamista ja käyttöoikeuksien myöntämistä.
Järjestelmä hoitaa myös lomakkeiden validoinnin puolestasi. Voit siis luoda lomakkeita ilman, että sinun tarvitsee itse käsitellä validointia. Jos olet tehnyt lomakkeiden validoinnin muissa kehyksissä, tiedät kuinka hankalaa se voi olla. Ei Djangon kanssa.
Todennusmoduulissa on a Käyttäjä malli tai esine. The Käyttäjä objekti on käyttäjän todennusjärjestelmän pääkomponentti. Se hoitaa käyttöoikeudet, rekisteröityjen käyttäjien profiilien todentamisen, kulunvalvonnan ja paljon muuta.
The UserCreationForm käyttää sisäänrakennettua Käyttäjä vastustaa uusien käyttäjien rekisteröintiä. Se perii ModelForm-luokasta.
Tuo ensin lomakkeet Django-lomakemoduulista. Tuo sitten UserCreationForm alkaen django.contrib.auth.forms. Tuo myös sisäänrakennettu Käyttäjä malli alkaen django.contrib.auth.models. Tuo sitten kenttäsyötteet django ModelFormista.
alkaen django tuonti lomakkeita
alkaendjango.contrib.auth.lomakkeettuontiUserCreationForm
alkaendjango.contrib.auth.mallejatuontiKäyttäjä
alkaen django.forms tuonti ModelForm, TextInput, EmailInput, ImageField, Textarea
Luo seuraavaksi rekisteröintiobjekti nimeltä RekisteröidyKäyttäjälomake. Se vie UserCreationForm argumenttina. Lisää Käyttäjä objektikenttiä, kuten sähköpostin todennus, käyttäjätunnus ja kaksi salasanaa.
luokkaaRekisteröidyKäyttäjälomake(UserCreationForm):
sähköposti = lomakkeet. Sähköpostikenttä (max_length=254, help_text='Edellytetään. Syötä voimassa oleva sähköpostiosoite.')
luokkaaMeta:
malli = Käyttäjä
kentät = ('käyttäjätunnus', 'sähköposti', 'salasana 1', 'salasana 2')
Nämä kentät ovat käyttäjän ensisijaiset määritteet rekisteröintilomakkeessa. Ne ovat pakollisia syötteitä, jotka käyttäjien on täytettävä, jotta järjestelmä voi todentaa ne.
Luo näkymätoiminto
Seuraavaksi luot rekisteröintilomakkeelle näkymätoiminnon. Tuo ensin renderöintifunktio sekä RekisteröidyKäyttäjälomake osoitteesta forms.py. Tuo sitten Käyttäjä malli alkaen django.contrib.auth.models.
Näytä toiminto nimeltä register ottaa RekisteröidyKäyttäjälomake. Se tekee sen register.html sapluuna.
alkaen django.shortcuts tuonti tehdä,
alkaen django.http tuonti HttpResponse, Http404
alkaen .lomakkeet tuonti RekisteröidyKäyttäjälomake
alkaendjango.contrib.auth.mallejatuontiKäyttäjä
defrekisteröidy(pyyntö):
form=RegisterUserForm
konteksti={'muodossa':form}
palauta renderöinti (pyyntö,'register.html',konteksti)
Luo URL-polku
Luo URL-polku varten register.html sapluuna. Tämä URL-osoite on juuri luomasi näkymäfunktion polku. Anna sille nimi rekisteröidy, joten voit kutsua sitä mallissa nimellä.
alkaen django.urls tuonti polku
alkaen. tuonti näkymät
urlpatterns=[
polku ('rekisteröidy', views.register, nimi='rekisteröidy'),
]
Lataa malli
Nyt kun sinulla on näkymä ja URL-polku, voit luoda register.html malli sovelluskansiossa. Käytät django-crispy-muotoja renderöimään RekisteröidyKäyttäjälomake.
Vuonna register.html malli, laajenna base.html. The base.html sisältää Bootstrap linkit käytät rekisteröintilomakkeen tyyliin. Lataa sitten django-crispy-lomakkeet register.html: llä käyttämällä mallitageja.
{% laajenee 'base.html' %}
{% load crispy_forms_tags %}
{% block content %}
<div class="kontti" tyyli ="">
<div class="rivi">
<div class="col-md-2"></div>
<div class="col-md-8">
<div class="kortti" tyyli ="väri musta;">
<div class="kortti-runko">
<h5 luokka="kortin nimi"><a>Rekisteröidy jäseneksi</a><span style="kellua: oikea">Oletko jäsen? <a href="#" luokka="teksti-ensisijainen">Kirjaudu sisään nyt</a></span></h5>
<div class="korttiteksti">
<lomake toiminta ="" menetelmä="LÄHETTÄÄ" novalidoida>
{% csrf_token %}
{{ muoto|rapea}}
<painikkeen tyyppi="Lähetä" luokka="btn btn-ensisijainen btn-sm"> Rekisteröidy</button>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
{% endblock %}
Lomake sisältää csrf_token, joka suojaa rekisteröintiprosessia hakkereilta. Piirrä lomake samalla muuttujan nimellä kuin näkymätoiminnossa. Lisää sitten |rapea suodatin Djangoon {{lomake}} muuttuja. Tämä tekee muodosta rapean muodon.
Suorita palvelin. Tarkista sitten sovellus selaimessa osoitteessa http://127.0.0.1:8000/register. Sinun pitäisi nähdä alla olevan kuvan mukainen lomake:
Olet tehnyt rekisteröintilomakkeen rapeilla lomakkeilla! Huomaa, että Django lisäsi vahvistuksen lomakkeeseen automaattisesti. Näitä ovat vaatimukset, kuten käyttäjätunnuksen ja salasanan käyttöoikeudet.
Lisää todennuslogiikka näkymätoimintoon saadaksesi täydellisen kirjautumisjärjestelmän. Voit myös lisätä kirjautumissivun rekisteröityneiden käyttäjien kirjautumiseen. Käyttäjien on täytettävä todennusvaatimukset kirjautuakseen sovellukseen.
Django-crispy-forms -kirjaston avulla voit nopeasti ja helposti hahmontaa vahvistettuja lomakkeita. Tietojen vahvistaminen varmistaa, että sinulla on tarkat tiedot käyttäjiltäsi.
Tiedot ovat hyödyllisiä kommunikoitaessa käyttäjien kanssa ja analysoitaessa suorituskykymittareita.
Miksi käyttää django-rapeaa muotoa?
Rapeiden lomakkeiden kirjaston käyttäminen lomakkeiden hahmontamiseen Djangossa on loistava esimerkki DRY-periaatteen soveltamisesta. django-crispy-forms luo uudelleenkäytettäviä komponentteja, jotka voit hahmontaa malleissa.
Niissä on sisäänrakennettu HTML-koodi. Koodi säästää lomakkeiden jäsentämisen ja vahvistamisen vaivaa. Rapeat lomakkeet tarjoavat tunnisteen ja suodattimen, joka renderöi lomakkeet div-muodossa. Ne tarjoavat myös mahdollisuuden määrittää ja hallita renderöityä HTML-koodia.
django-crispy-forms toimii hyvin Django-tunnistusjärjestelmän kanssa. Voit luoda todennusjärjestelmän käyttäjien todentamiseksi kirjoittamatta paljon koodia.