Django - Geavanceerde formulieren

Inhoudsopgave
Het bouwen van formulieren kan veel eenvoudiger worden gemaakt door gebruik te maken van de generieke klassen van Django we zullen ze echter niet altijd gebruiken, omdat we soms de volledige logica van onze kant moeten ontwikkelen.
Gelukkig binnen Django We kunnen ook de manier creëren waarop we onze formulieren gaan verwerken en hoe we hun logica kunnen beheren, hiermee zullen we veel meer gepersonaliseerde toepassingen bereiken en dichter bij onze doelstellingen.
De gegevens aan het formulier toevoegen
We weten dat het formulier een manier is om gegevens van de gebruiker over te nemen, daarom hebben we er twee statussen van, met gegevens en zonder gegevensWanneer het formulier gegevens heeft, is het wanneer we onze bewerkingen gaan uitvoeren, aan de andere kant, wanneer het niets heeft, moeten we het gewoon negeren voor gegevensverwerking.
OefeningWe gaan de volgende oefening uitvoeren, vanaf de interactieve console van: Django, we gaan een formulier maken en met de is_gebonden () methode We zullen valideren of het bijbehorende gegevens heeft, op deze manier kunnen we iets meer zien hoe het formulier zich binnen het raamwerk gedraagt, laten we de resultaten in de onderstaande afbeelding bekijken:

Zoals we in het voorbeeld zien, krijgen we alleen wanneer we de waarden aan het formulier doorgeven terwijl we de is_bound-methode gebruiken Waar antwoord.
Gegevens valideren
Zoals we weten, als we op internet werken, kunnen de gegevens die door de gebruiker worden ingevoerd de meest effectieve vorm van aanval op onze applicatie zijn, dit komt omdat het door onwetendheid elk type formaat kan invoeren dat onze applicatie niet klaar is om te accepteren en kan daarom eindigen in een fatale fout, om dit te voorkomen moeten we er altijd voor zorgen dat de gegevens veilig zijn voordat we ze verwerken. Hiervoor kunnen we het volgende gebruiken:
 def my_view (request): if request.method == 'POST': form = MyForm (request.POST, request.FILES) if form.is_valid (): #Als de gegevens hier geldig zijn, kunnen we verder gaan met onze applicatielogica anders : # Anders presenteren we het object alleen zonder gegevensformulier = MyForm ()

Zoals we in het voorbeeld zien, maken we een instantie van de klasse MijnFormulier en we voegen ons bij de gegevens die binnenkomen in de verzoek, door de POST-methode en die van het type BESTANDEN In het geval dat we een afbeelding of een bestand van een ander type meenemen, afhankelijk van ons model, wat ons formulier oplevert, moet hiervoor worden geëvalueerd, gebruiken we de is_valid () methode, hiermee zorgen we ervoor dat als er een string komt waar een getal zou moeten komen, de informatie wordt geweigerd en het niet wordt toegestaan ​​om de database te bereiken waar het een fatale fout zou kunnen veroorzaken.
Op klassen gebaseerde weergaven
Met wat we in het vorige voorbeeld hebben gezien, kunnen we nu zien hoe we iets soortgelijks kunnen toepassen met behulp van de Op klassen gebaseerde weergaven en gebruik op deze manier de kadertools.
Als we de gebruiken FormView generiek van Django we kunnen iets bereiken dat lijkt op de volgende code:
 van Django.shortcuts import render, redirect van Django.views.generic.edit import FormView class MyForm (FormView): form_class = MyForm template_name = 'form.html' success_url = '/ success /' def form_valid (self, form): form .save () return super (MyView, zelf) .form_valid (form)

Zoals we kunnen zien, stelt het geavanceerde gebruik van formulieren ons in staat om applicaties dynamischer en persoonlijker te maken, waarmee we ongelooflijke resultaten kunnen bereiken met slechts een paar regels code.Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een ​​positief punt te geven
wave wave wave wave wave