Python → Python za web → Django forme i registracija


Django forme i registracija korisnika


Lekcija 11 od 14

U prethodnoj lekciji naučili smo kako Django koristi modele i bazu podataka.

Sada ćemo videti kako korisnici mogu unositi podatke preko web formi.

Forme omogućavaju korisnicima da šalju podatke web aplikaciji.

Šta je Django forma?

Forma je HTML obrazac koji omogućava unos podataka na web stranici.

Primer jednostavne HTML forme:


<form method="post">

<input type="text" name="ime">

<button type="submit">Pošalji</button>

</form>

Django forms sistem

Django ima poseban sistem za rad sa formama koji olakšava validaciju podataka.

Forma se definiše u fajlu forms.py.


from django import forms

class KontaktForma(forms.Form):

    ime = forms.CharField(max_length=100)

    poruka = forms.CharField(widget=forms.Textarea)

Django automatski proverava validnost unesenih podataka.

Prikaz forme u template-u

Forma se prikazuje u HTML template-u.


<form method="post">

{% csrf_token %}

{{ form.as_p }}

<button type="submit">Pošalji</button>

</form>

Django koristi CSRF zaštitu kako bi sprečio napade na aplikaciju.


Obrada forme u view funkciji


from django.shortcuts import render
from .forms import KontaktForma

def kontakt(request):

    if request.method == "POST":

        form = KontaktForma(request.POST)

        if form.is_valid():

            ime = form.cleaned_data["ime"]

    else:

        form = KontaktForma()

    return render(request, "kontakt.html", {"form": form})
Ako je forma validna, Django omogućava pristup podacima.

Registracija korisnika

Django već ima ugrađen sistem za autentifikaciju korisnika.

To znači da možemo lako napraviti:

  • registraciju korisnika
  • login sistem
  • logout
  • upravljanje profilima

Primer registracije korisnika


from django.contrib.auth.models import User

user = User.objects.create_user(
    username="marko",
    password="tajna123"
)

Ovaj kod kreira novog korisnika u bazi.


Django login stranica

Django omogućava jednostavno dodavanje login sistema u aplikaciju.


from django.contrib.auth import authenticate, login
Autentifikacija korisnika je jedna od najvažnijih funkcija web aplikacija.

Povezani tutorijali

Ako želite da vidite kako kompletna Django aplikacija funkcioniše u praksi, pogledajte sledeće tutorijale:


Često postavljana pitanja

Šta je Django forma?

Django forma omogućava unos i validaciju podataka.

Šta je CSRF token?

CSRF token štiti aplikaciju od neautorizovanih zahteva.

Da li Django ima sistem za korisnike?

Da. Django ima ugrađen sistem za autentifikaciju i upravljanje korisnicima.

Da li možemo napraviti login sistem?

Da. Django omogućava jednostavno pravljenje login i registracionih stranica.