Python → Python za web → Django forme i registracija
Django forme i registracija korisnika
U prethodnoj lekciji naučili smo kako Django koristi modele i bazu podataka.
Sada ćemo videti kako korisnici mogu unositi podatke preko web formi.
Š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)
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})
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
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.