Python

Hoe een Django-formulier te maken?

Hoe een Django-formulier te maken?
Het gebruik van het formulier is een essentieel onderdeel van elke webapplicatie. De input van de websitegebruikers kan worden genomen met behulp van het formulier. Het kan verschillende soorten velden bevatten, zoals een tekstvak, keuzelijst met invoervak, selectievakje, keuzerondje, enz. om gegevens van de gebruikers te nemen. Het Django-framework bevat een groot aantal bibliotheken om de webontwikkelaar te helpen een HTML-formulier te ontwerpen om invoer van de gebruiker te ontvangen, de invoer te verwerken en te reageren op de invoer van de gebruiker.

Hoe HTML-formulier kan worden gebruikt om gegevens van de gebruiker te nemen, de invoerwaarden te lezen en de waarden in de browser af te drukken met behulp van Django, wordt in deze zelfstudie getoond.

Vereisten:

U moet een Django-project maken voordat u het Django-formulier maakt. Voer de volgende opdrachten uit om een ​​nieuw Django-project te maken en naar de projectmap te gaan:

$ django-admin startproject django_pro
$ cd django_pro

Voer de volgende opdracht uit om de benodigde bestanden te maken en migraties voor het project toe te passen:

$ python3 beheren.py migreren

Voer de volgende opdracht uit om te controleren of de Django-server correct werkt:

$ python3 beheren.py runserver

Om de . te maken formapp onder django_pro project, voer de volgende opdracht uit:

$ python3 beheren.py startapp formapp

HTML-formulier maken met Django:

Open de keer bekeken.py bestand dat erin zit formapp map en wijzig de inhoud met de volgende inhoud:. Het volgende script controleert of het formulier is verzonden of niet. Als het formulier wordt ingediend, dan is de waarde van de verzoek.methode zal POST zijn en verzoek.POST.krijgen() methode wordt gebruikt om de ingediende waarden te lezen. De is geldig() functie zal controleren of de gegevens van het formulier geldig zijn of niet. Als deze functie true retourneert, wordt een succesbericht met de geldige gebruikersgegevens afgedrukt in de browser, anders wordt het foutbericht weergegeven dat in het specifieke veld van het formulier verschijnt. Anders dan dat, de render() methode wordt gebruikt om het formulier in de browser te laden en HttpResponse() methode wordt gebruikt om het antwoord van de server naar de browser te sturen na het indienen van het formulier.

# Importeer benodigde modules
van django.sneltoetsen import render
van formapp.formulieren importeren StudentForm
van django.http import HttpResponse
def form_request(request):
# Controleer of het formulier is verzonden of niet
indien verzoek.methode == 'POST':
student = StudentForm (verzoek.POST)
# Controleer of de formuliergegevens geldig zijn of niet
als student.is geldig():
# Lees de ingediende waarden
naam = verzoek.POST.get("naam")
e-mail = verzoek.POST.get("e-mail")
gebruikersnaam = verzoek.POST.get("gebruikersnaam")
# Voeg de waarden samen
data = ['Uw registratie is succesvol afgerond.
', 'Naam naam, '
', 'E-mail:', e-mail, '
', 'Gebruikersnaam:', gebruikersnaam]
# Retourneer de formulierwaarden als antwoord
retour HttpResponse(data)
anders:
# Geef het html-formulier weer
student = StudentForm()
return render(verzoek, "form.html", 'formulier': student)

Aanmaken formulieren.py binnen in de formapp map en voeg de volgende inhoud toe:. Het volgende script maakt een formulier van vier velden:. De naam veld is gedefinieerd om de karaktergegevens op te nemen en het kan 40 karakters lang zijn. De e-mail veld is gedefinieerd om elk geldig e-mailadres te gebruiken met behulp van de tekengegevens en het kan 50 tekens lang zijn. De gebruikersnaam veld is gedefinieerd om de karaktergegevens op te nemen, en het kan 20 karakters lang zijn. De wachtwoord veld is gedefinieerd om de tekengegevens op te nemen en het kan minimaal 10 tekens en maximaal 20 tekens lang zijn. De formulieren.Wachtwoordinvoer widget wordt gebruikt voor het wachtwoordveld om de inhoud van het wachtwoordveld te verbergen.

# Formuliermodules importeren
van django importformulieren
# Maak klasse om de formuliervelden te definiëren
klasse StudentForm (formulieren).Het formulier):
naam = formulieren.CharField(label="Volledige naam", max_length=40)
e-mail = formulieren.EmailField(label="E-mail", max_length=50)
gebruikersnaam = formulieren.CharField(label="Gebruikersnaam", max_length=20)
wachtwoord = formulieren.CharField(label="Wachtwoord", min_length=10, max_length=20, widget=forms.Wachtwoordinvoer)

Maak een map met de naam Sjablonen binnen in de formapp map. Ga naar de SJABLONEN gedeelte van de instellingen.py bestand en stel de locatie van de sjabloon map voor de DIRS eigendom.

instellingen.py

SJABLONEN = [

'DIRS': ['/home/fahmida/django_pro/formapp/templates']
,
]

Aanmaken het formulier.html binnen in de sjabloon map met de volgende inhoud.

% csrf_token % wordt gebruikt in het HTML-script om CSRF-aanvallen (Cross-Site Request Forgeries) te voorkomen. het formulier.as_p laadt het Django-formulier dat is ontworpen door de formulieren.py het dossier. Wanneer de Verzenden knop wordt ingedrukt, worden de formuliergegevens naar de server verzonden.





Gebruikersregistratieformulier



% csrf_token %
het formulier.as_p



Open de URL's.py van de django_pro map en wijzig de inhoud met de volgende inhoud:.

Hier de 'registreren/' pad wordt gebruikt om het formulier in de browser te laden.

# Importeer benodigde modules
van django.URL-importpad
van formapp importweergaven
# Oproepmethode om het formulier weer te geven
urlpatronen = [
path('register/', views.form_request)
]

Open een willekeurige browser en typ de volgende URL om het gebruikersregistratieformulier in de browser te laden:.

http://localhost:8000/register

De volgende uitvoer verschijnt na het uitvoeren van de URL:. De validatie voor het lege veld, de maximale lengtewaarde van naam-, e-mail- en wachtwoordvelden, en de minimale en maximale lengtewaarden van het wachtwoordveld worden gecontroleerd na het indienen van het formulier.

De volgende uitvoer laat zien dat het wachtwoordveld ongeldig is:. Volgens het formulier moet de lengte van de wachtwoordwaarde tussen 10 en 20 tekens zijn. Er zijn 5 tekens als invoer gegeven in de volgende vorm. Hiervoor toont het formulier de foutmelding.

Na het invoeren van de geldige uitvoer in elk veld van het formulier, verschijnt de volgende uitvoer:.

Conclusie:

De manier om een ​​heel eenvoudig gebruikersregistratieformulier in de Django-applicatie te maken, is in deze tutorial getoond. Django heeft veel methoden voor het maken van verschillende soorten velden van het formulier, zoals CharField(), EmailField(), TextFiled, enz. De formuliervalidatietaak wordt veel eenvoudiger wanneer het formulier is ontworpen door Django form.

Beste spellen om te spelen met handtracking
Oculus Quest introduceerde onlangs het geweldige idee van handtracking zonder controllers. Met een steeds toenemend aantal games en activiteiten die f...
OSD-overlay tonen in Linux-apps en -games op volledig scherm
Het spelen van games op volledig scherm of het gebruik van apps in de modus volledig scherm zonder afleiding kan u afsnijden van relevante systeeminfo...
Top 5 Game Capture-kaarten
We hebben allemaal gezien en genoten van streaming gameplays op YouTube. PewDiePie, Jakesepticye en Markiplier zijn slechts enkele van de beste gamers...