Hvordan lage django form?

Hvordan lage django form?
Bruken av skjemaet er en viktig del av enhver webapplikasjon. Innspillet fra nettstedet brukere kan tas med skjemaet. Den kan inneholde forskjellige typer felt, for eksempel tekstboks, kombinasjonsboks, avmerkingsboks, alternativknapp osv. å ta data fra brukerne. Django Framework inneholder et stort antall biblioteker for å hjelpe nettutvikleren med å designe en HTML -skjema for å ta innspill fra brukeren, behandle inngangen og svare på brukerens inndata.

Hvordan HTML -skjema kan brukes til å ta data fra brukeren, lese inngangsverdiene og skrive ut verdiene i nettleseren ved hjelp av Django vises i denne opplæringen.

Forutsetninger:

Du må lage et Django -prosjekt før du oppretter Django -skjemaet. For å opprette et nytt Django -prosjekt og gå til prosjektmappen, kjør følgende kommandoer:

$ django-admin startproject django_pro
$ CD Django_Pro

For å lage nødvendige filer og bruke migrasjoner for prosjektet, kjør følgende kommando:

$ Python3 Administrer.py migrerer

For å sjekke om Django -serveren fungerer ordentlig eller ikke, kjør følgende kommando:

$ Python3 Administrer.py runserver

Å lage formapp under django_pro Prosjekt, kjør følgende kommando:

$ Python3 Administrer.Py startapp formapp

Lag HTML -form ved hjelp av Django:

Åpne utsikt.py fil som er inne formapp mappe og endre innholdet med følgende innhold. Følgende skript vil sjekke om skjemaet er sendt inn eller ikke. Hvis skjemaet sendes inn, så er verdien av be om.metode vil være post og be om.POST.få() Metoden brukes til å lese de innsendte verdiene. De er gyldig() funksjonen vil sjekke om dataene til skjemaet er gyldige eller ikke. Hvis denne funksjonen returnerer sann, vil en suksessmelding med den gyldige brukerens data bli skrevet ut i nettleseren, ellers vises feilmeldingen som vises på det aktuelle feltet i skjemaet. Annet enn det, gjengivelse () metoden brukes til å laste skjemaet i nettleseren og HttpResponse () Metoden brukes til å sende responsen fra serveren til nettleseren etter å ha sendt skjemaet.

# Importer nødvendige moduler
Fra Django.snarveier import gjengivelse
Fra Formapp.skjemaer importerer studentform
Fra Django.HTTP Importer HttpResponse
def form_request (forespørsel):
# Kontroller skjemaet er sendt inn eller ikke
Hvis forespørsel.Metode == 'POST':
Student = Studentform (forespørsel.POST)
# Kontroller skjemadataene er gyldige eller ikke
Hvis student.er gyldig():
# Les de innsendte verdiene
Navn = forespørsel.POST.få ("navn")
E -post = forespørsel.POST.Get ("E -post")
Brukernavn = forespørsel.POST.Get ("Brukernavn")
# Slå sammen verdiene
data = ['Registreringen din er fullført.
',' Navn: ', navn,'
',' E -post: ', e -post,'
',' Brukernavn: ', brukernavn]
# Returner skjemaverdiene som respons
Returner HttpResponse (data)
ellers:
# Vis HTML -skjemaet
Student = Studentform ()
Retur Render (forespørsel, "Skjema.html ", 'form': student)

Skape skjemaer.py inne i formapp mappe og legg til følgende innhold. Følgende skript vil lage en form på fire felt. De Navn Feltet er definert for å ta karakterdataene, og det kan være 40 tegn. De e -post Feltet er definert for å ta en gyldig e -postadresse ved hjelp av tegndataene, og det kan være 50 tegn lang. De Brukernavn Feltet er definert for å ta karakterdataene, og det kan være 20 tegn lang. De passord Felt er definert for å ta karakterdataene, og det kan være minimum 10 tegn og maksimalt 20 tegn lang. De skjemaer.PasswordInput Widget brukes til passordfeltet for å skjule innholdet i passordfeltet.

# Importer skjemamoduler
fra Django importformer
# Lag klasse for å definere skjemafeltene
klasse Studentform (skjemaer.Form):
Navn = skjemaer.Charfield (label = "Fullt navn", max_length = 40)
E -post = skjemaer.E -postfield (label = "e -post", max_length = 50)
Brukernavn = skjemaer.Charfield (Label = "Brukernavn", Max_Length = 20)
passord = skjemaer.Charfield (label = "passord", min_lengde = 10, max_length = 20, widget = skjemaer.PasswordInput)

Opprett en mappe som heter Maler inne i formapp mappe. Gå til Maler del av innstillingene.py fil og angi plasseringen av mal mappe for Dirs eiendom.

Innstillinger.py

Maler = [

'Dirs': ['/home/fahmida/django_pro/formapp/maler']
,
]

Skape form.html inne i mal mappe med følgende innhold.

% csrf_token % brukes i HTML-skriptet for å forhindre CSRF (Cross Site Request Forgeries) angrep. Form.as_p vil laste Django -skjemaet som er designet av skjemaer.py fil. Når Sende inn Knappen trykkes, skjemadataene blir sendt til serveren.





Brukerregistreringsskjema



% csrf_token %
Form.as_p



Åpne URLS.py fra django_pro mappe og endre innholdet med følgende innhold.

Her, The 'registrere/' banen brukes til å laste skjemaet i nettleseren.

# Importer nødvendige moduler
Fra Django.URLS importerer bane
Fra FormApp importvisninger
# Samtale metode for å vise skjemaet
urlpatterns = [
bane ('register/', visninger.form_request)
]

Åpne hvilken som helst nettleser og skriv inn følgende URL for å laste inn brukerregistreringsskjemaet i nettleseren.

http: // localhost: 8000/register

Følgende utgang vises etter å ha kjørt nettadressen. Validering for det tomme feltet, maksimal lengdeverdi på navn, e -post og passordfelt, og minimums- og maksimumslengdeverdiene for passordfeltet vil bli sjekket etter å ha sendt skjemaet.

Følgende utdata viser at passordfeltet er ugyldig. I henhold til skjemaet, må lengden på passordverdien være innen 10 til 20 tegn. 5 tegn er gitt som innspill i følgende form. For dette viser skjemaet feilmeldingen.

Etter å ha lagt inn gyldig utgang i hvert felt i skjemaet, vil følgende utgang vises.

Konklusjon:

Måten å lage et veldig enkelt brukerregistreringsskjema i Django -applikasjonen er vist i denne opplæringen. Django har mange metoder for å lage forskjellige typer felt av formen, for eksempel Charfield (), e -postfield (), tekstfilet osv. Formvalideringsoppgaven blir veldig enklere når skjemaet er designet av Django Form.