KREIRANJE DJANGO WEB APLIKACIJE- DODAVANJE MODULA ZA REGISTRACIJU
Unutar jednog projekta moguće je imati više modula(aplikacija unutar glavne aplikacije). Većina web aplikacija treba da svojim posetiocima treba da svojim posetiocima omogući registrovanje na sajt, kao i mogućnost prijavljivanja. To će u aplikaciji Logo Kreator biti poseban modul. U nastavku ćemo pokazati kako se kreiraju moduli, koji treba da budu posebni folder unutar root-a aplikacije.
|
Dodavanje modula za registraciju-videoKreiranje aplikacije Logo Kreator upotrebom Đango Framework-a. Nastavak br. 6, koji opisuje kako dodati aplikaciju za registraciju korisnika
|
Dodavanje aplikacije registracija
Da bi kreirali sve što je potrebno za registraciju i za logovanje, dodaćemo novu aplikaciju Registracija. U command promptu u okviru foldera projekta otkucajmo:
python manage.py startapp Registracija
Ovo će kreirati subfolder Registracija sledeće strukture fajlova:
Registracija/
__init__.py
admin.py
models.py
tests.py
views.py
Registracija/
__init__.py
admin.py
models.py
tests.py
views.py
Povezivanje urls.py fajla iz modula “Registracija” sa glavnim urls.py fajlom aplikacije “Logo Kreator”
Da bi aplikacija uzela u obzir url veze pojedinih modula unutar nje, pa samim tim i novo kreiranog modula za registraciju potrebno je unutar glavnog urls.py fajla dodati red za uključivanje fajla registracija.urls:
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^', include('naslovna.urls')),
url(r'^', include('registracija.urls')),
]
url(r'^', include('naslovna.urls')),
url(r'^', include('registracija.urls')),
Dodavanje web strane za registraciju
Unutar urls.py fajla u okviru aplikacije registracija, treba dodati sledeću url vezu:
Da bi url registracija:registrovanje koji se pojavljje kao href atribut linkova, a koji se najčešće nalaze u okviru templejta(html stranica), preusmerio na izvršavanje funkcije koja će renderovati web stranu za registraciju korisnika, potrebno je ovu vezu ubaciti unutar strane urls.py:
url(r'^registrovanje/$', reg_views.signup, name='registrovanje'),
Ovaj fajl nije automatski kreiran prilikom kreiranja modula i treba ga prvo kreirati u folderu modula Registracija(unutar isoimenog foldera).
Unutar view.py definisaćemo funkciju signup:
Unutar view.py definisaćemo funkciju signup:
Ovde se prvo vrši provera da li je korisnik ulogovan(i da li postoji u bazi).
Ako jeste preusmerava se na naslovnu stranu. Ako nije, ispituje se da li je prvi GET poziv ili je POST poziv koji će se desiti tek posle popunjavanja forme za registraciju i klikom na submit dugme za slanje zahteva.
U prvom pozivu potrebno je kreirati praznu formu kao objekat i proslediti ga templejt strani koja će se pozvati sa render funkcijom:
render(request, 'registracija/registracija_index.html', {'form': f})
Parametar {'form': f} biće prosleđen templejtu i tamo popunjene vrednosti osobina objekta form.
Kao model podataka može se koristiti djangova klasa UserForm ili sopstvena klasa koja se kreira od ugrađene i koja se definiše u fajlu form.py:
Ako jeste preusmerava se na naslovnu stranu. Ako nije, ispituje se da li je prvi GET poziv ili je POST poziv koji će se desiti tek posle popunjavanja forme za registraciju i klikom na submit dugme za slanje zahteva.
U prvom pozivu potrebno je kreirati praznu formu kao objekat i proslediti ga templejt strani koja će se pozvati sa render funkcijom:
render(request, 'registracija/registracija_index.html', {'form': f})
Parametar {'form': f} biće prosleđen templejtu i tamo popunjene vrednosti osobina objekta form.
Kao model podataka može se koristiti djangova klasa UserForm ili sopstvena klasa koja se kreira od ugrađene i koja se definiše u fajlu form.py:
Takođe bih preporučio sledeći web sajt koji opisuje kako kreirati korisničke forme na jednostavan način simpleisbetterthancomplex.com/tutorial/2017/02/18/how-to-create-user-sign-up-view.html
Još jedan koristan web sajt, koji objašnjava kreiranje formi možete pogledati na linku:
www.c-sharpcorner.com/article/django-forms/
Još jedan koristan web sajt, koji objašnjava kreiranje formi možete pogledati na linku:
www.c-sharpcorner.com/article/django-forms/
Vidi se da je ovoj klasi kao parametar prosleđen objekat UserCreationForm iz paketa django.contrib.auth.forms
Atributi username, password1, password2, email biće polja koja korisnik treba da popuni na formi. Kao model se koristi klasa User koja je takođe predefinisana djangova klasa iz paketa django.contrib.auth.models.
Forma ima svoje funkcije koje se definišu unutar klase CreateUserForm, a to su clean_email i save. Ova druga se poziva kada se klikne na dugme registruj. Tada se prvo snimaju podaci u model User, tj. u bazu podataka, a zatim se kreira post zahtev i ponovo poziva signup funkcija definisana u view.py fajlu.
Atributi username, password1, password2, email biće polja koja korisnik treba da popuni na formi. Kao model se koristi klasa User koja je takođe predefinisana djangova klasa iz paketa django.contrib.auth.models.
Forma ima svoje funkcije koje se definišu unutar klase CreateUserForm, a to su clean_email i save. Ova druga se poziva kada se klikne na dugme registruj. Tada se prvo snimaju podaci u model User, tj. u bazu podataka, a zatim se kreira post zahtev i ponovo poziva signup funkcija definisana u view.py fajlu.
Templejt strane za registraciju
Web strana registracija/registracija_index.html:
Vidi se da i ovaj html fajl proširuje base.html, kao i naslovna strana, a to je onaj zajednički deo u kome se nalaze gornje i donje zaglavlje. U centralnom delu strane se nalazi forma za regostraciju prikazana kao tabela. Takođe se nalazi i deo za prikaz poruka o grešci ukoliko do njih dođe kao i zaštitni tag csrf_token, koji služi za zaštitu od poziva webstrane sa neželjenih lokacija(hakera, spamova itd).
base.html možete videti u nekom od prethodnih članaka na web lokaciji kreiranje naslovne strane
base.html možete videti u nekom od prethodnih članaka na web lokaciji kreiranje naslovne strane
Prethodno
|< Kreiranje aplikacije na Heroku Web Platformi 2 |
Sledeće
Dodavanje web strane za logovanje >| |