Django je framework – radni okvir koji se smatra jednim od najboljih radnih okvira za razvoj veb aplikacija. Napisan je u Python programskom jeziku i zato ne treba da vas čudi zašto je on najčešći izbor Python programera i zašto treba da poznajete Python programski jezik da bi ste koristili Django. Nastao je još u junu 2005 godine, otvorenog je koda i besplatan. Ono što je njegova prednost jeste što on nudi kompletno rešenje za izradu veb aplikacija od početka do kraja; nudi razne funkcije za upravljanje bazama podataka, veb stranicama i URL rutiranjem. On jednostavno ima mnoge ugrađene funkcionalnosti koje omogućavaju programerima da brzo razviju i testiraju veb projekat. Dizajniran je za skalabilne aplikacije i ima mogućnost rada s velikim brojem zahteva. To jednostavno znači da imate mogućnost širenja i razvijanja vašeg projekta, a da pri tome projekat zadrži sva njegova osnovna svojstva i funkcije. Vremenom i dodatnim procesima vaš mali projekat postaje sve veći i opet odlično funkcioniše. Django i jeste nastao iz potrebe za komplikovanim veb projektima. Ali ako mene lično pitate zašto sam u mnogim rešenjima već koristio Django, onda je glavni razlog zbog rada sa bazama podataka. Sa Django-m vi jednostavno ne morate da koristite SQL - Structured Query Language – strukturirani jezik upita. To ne znači da ne trebate da učite SQL. On jednostavno odrađuje stvari za vas, dok recimo u Laravel radnom okviru vi bukvalno kucate SQL komande u modulima. Django uključuje ORM - Object-Relational Mapping - sistem za upravljanje bazama podataka. To omogućava programerima da rade s bazom podataka koristeći objekte Python programskog jezika umjesto SQL koda.
E sad se možete pitati pa koja je razlika između Django-a i Laravel-a, i zašto većina veb sajtova koristi Laravel nego Django? Prvo zbog programskog jezika; Laravel radni okvir je razvijen u programskom jeziku PHP, dok je Django razvijen u programskom jeziku Python. Laravel je lako instalirati i hostovati na većini veb servera, dok Django zahteva specifične postavke servera kako bi se pravilno izvršavao. Isto tako mislim da se sa Django-m više koriste PostgreSQL baze podataka dok korisnici Laravel preferiraju MySQL baze podataka. To jeste vaš izbor ali ponekad je to izbor vašeg hosting provajdera. Što se tiče strukture Laravel radni okvir ima MVC - Model-View-Controller arhitekturu, dok Django radni okvir ima MVT - Model-View-Template arhitekturu koja razdvaja logiku aplikacije, vizualni prikaz i podatke. Oba pristupa su slični i imaju svoje prednosti i mane. Inače, tačno je da je Laravel radni okvir jednostavniji za upotrebu i brži za razvoj manjih projekata, dok Django nudi više funkcija i bolju skalabilnost za velike projekte. Zato vaš izbor uglavnom zavisi o vrsti projekta i razini vašeg znanja u programiranju. Oba radna okvira su dobra za razvoj modernih veb aplikacija, ali jedan može biti bolji izbor u odnosu na drugi, ovisno o specifičnostima projekta. Ono što bi još izdvojio kad je u pitanju izbor Django radnog okvira jeste njegov čuveni Admin panel. On ima ugrađeni Admin panel koji omogućuje jednostavno upravljanje aplikacijom, kao što su upravljanje korisnicima i unosom podataka; tako da neke podatke možete videti i pre nego što odradite HTML5 stranice koje će prikazivati iste. Isto tako ako dajete veliki značaj sigurnosti podataka, onda treba da znate da Django pruža niz sigurnosnih karakteristika, uključujući zaštitu od XSS – Cross Site Scripting i SQL Injection napada.
Kako da počnem sa Django projektom?
Za učenje i za kreiranje nekih manjih projekata; izbor operativnog sistema na kojem hoćete da učite i da radite nije toliko bitan, ali ako pravite veliki projekat na kojem ćete da raditi više meseci ili godina, onda unapred morate razmisliti bukvalno o svakoj sitnici. To zavisi od mnogih faktora. Ako ste zakupili Ubuntu server, što je najčešći izbor mnogih kompanija; onda će te Django projekte kreirati na Linux operativnom sistemu, verovatno i na Ubuntu distribuciji. Međutim, ako radite sa dosta veb dizajna i fotografija; onda je možda bolje da projekat kreirate na Windows operativnom sistemu radi Adobe Photoshop-a i drugih dizajnerski softvera. Ovaj tutorijal na ovom blogu će se kreirati Django projekat na Linux operativnom sistemu, Ubuntu distribuciji. Oni koji se odluče za Windows operativni sistem, njima preporučujem da instaliraju Git terminal. S njim možete koristiti neke Linux terminal komande na Windows operativnom sistemu. Pogledajte u video-u kako se instalira.
manuel@manuel-virtual-machine:~$ python3 --version
Python
3.10.6
manuel@manuel-virtual-machine:~$ python3.11 --version
Python
3.11.2
manuel@manuel-virtual-machine:~$ python3.11
Python
3.11.2 (main, Feb 8 2023, 14:49:25) [GCC
11.3.0] on linux
Type
"help", "copyright", "credits" or
"license" for more information.
>>>
exit()
manuel@manuel-virtual-machine:~$
Ako ste sve uspešno završili, instalirajte virtualno okruženje. Virtualno okruženje je alat koji će vam pomoći da izolujete projekat od drugih Python projekata na vašem sistemu. Ali da bi ste njega instalirali najbolje je da proverite da li imate instaliran PIP - Python Package Installer, alat za upravljanje Python paketima, koji se koristi za instaliranje, ažuriranje i deinstaliranje Python biblioteka i modula. Kada se koristi PIP, korisnik može da navede ime ili verziju paketa koji želi da instalira, dok će PIP automatski preuzeti i instalirati sve zavisnosti koje su potrebne da bi taj paket funkcionisao ispravno. PIP se obično instalira zajedno sa Python jezikom, ali uvek proverite da li mu je potrebna nadogradnja.
manuel@manuel-virtual-machine:~$ python3.11 -m pip install --upgrade pip
manuel@manuel-virtual-machine:~$ python3.11 -m pip –version
manuel@manuel-virtual-machine:~$:~$ sudo apt-get install python3.11-venv
Ukoliko ste i ovo uspešno odradili, čestitamo! Spremni ste za kreiranje projekta kojeg ćemo nazvati django_tutorial. Kreirajte direktorijum i pozicionirajte se u njemu.
manuel@manuel-virtual-machine:~$ sudo mkdir django_tutorial
manuel@manuel-virtual-machine:~$ sudo chmod -R 777 django_tutorial
manuel@manuel-virtual-machine:~$ cd django_tutorial
manuel@manuel-virtual-machine:~/django_tutorial$
Zatim kreiramo virtualno okruženje za naš projekat. To ćete raditi svaki put kad kreirate novi projekat.
manuel@manuel-virtual-machine:~/django_tutorial$ python3.11 -m venv env
manuel@manuel-virtual-machine:~/django_tutorial $ ls
env
manuel@manuel-virtual-machine:~/django_tutorial $ cd env
manuel@manuel-virtual-machine:~/django_tutorial /env$ ls
bin
include lib lib64 pyvenv.cfg
manuel@manuel-virtual-machine:~/django_tutorial /env$
manuel@manuel-virtual-machine:~/django_tutorial/env$ cd bin
manuel@manuel-virtual-machine:~/django_tutorial/env/bin$ ls
activate activate.fish
pip pip3.11
python3
activate.csh Activate.ps1
pip3 python python3.11
manuel@manuel-virtual-machine:~/django_tutorial/env/bin$
Ukoliko izlistate novoformirani direktorijum, virtualnog okruženja projekta env; kojeg vi možete nazvati kako god hoćete. Takođe, obratite pažnju na ključni direktorijum bin. Otkucajte sledeće.
manuel@manuel-virtual-machine:~/django_tutorial/env/bin$ source activate
(env)
manuel@manuel-virtual-machine:~/django_tutorial/env/bin$
Sa komandom source activate; aktivirali smo virtualno okruženje našeg projekta. Kad god vidite (env) ispred vašeg direktorijuma to znači da se nalazite u virtualnom okruženju vašeg projekta. Aktiviranjem ovog okruženja vi jednostavno možete instalirati, pokrenuti i upravljati paketima samo u tom okruženju. To vam jednostavno omogućava da kreirate i upravljate različitim verzijama paketa i njihovim zavisnosti bez uticaja na druge pakete, projekte i okruženja koje imate instalirane na vašem računaru. To takođe znači da možete praviti projekte u totalno različitim verzijama Python programskog jezika i različitim verzijama i neće dolaziti do konflikta jer Python za svako virtualno okruženje kreira posebnu instancu i na taj način izolira vaš projekat i biblioteke fajlova od drugih. Kad se nalazite u navedenom okruženju, možete da instalirate sledeće. Vratite se u početni direktorijum projekta i kucajte sledeće komande:
(env) manuel@manuel-virtual-machine:~/django_tutorial $ pip install --upgrade pip
Requirement
already satisfied: pip in ./django_tutorial/env/lib/python3.11/site-packages
(22.3.1)
Collecting
pip
Using cached pip-23.0.1-py3-none-any.whl (2.1
MB)
Installing
collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 22.3.1
Uninstalling pip-22.3.1:
Successfully uninstalled pip-22.3.1
Successfully
installed pip-23.0.1
(env)
manuel@manuel-virtual-machine:~/django_tutorial $ pip
install Django
Collecting
Django
Using cached Django-4.1.7-py3-none-any.whl
(8.1 MB)
Collecting
asgiref<4,>=3.5.2
Using cached asgiref-3.6.0-py3-none-any.whl
(23 kB)
Collecting
sqlparse>=0.2.2
Using cached sqlparse-0.4.3-py3-none-any.whl
(42 kB)
Installing
collected packages: sqlparse, asgiref, Django
Successfully
installed Django-4.1.7 asgiref-3.6.0 sqlparse-0.4.3
(env)
manuel@manuel-virtual-machine:~$
Kad ste navedeno instalirali; možemo da kreiramo naš projekat sa pratećim direktorijumima i fajlovima.
(env) manuel@manuel-virtual-machine:~/django_tutorial$ django-admin startproject django_tutorial
Kada ste kreirali novi projekat, pozicionirajte se u njega i pokrenite Django server.
(env) manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$ python3.11 manage.py runserver
Watching
for file changes with StatReloader
Performing
system checks...
System check identified no issues (0 silenced).
You have 18 unapplied migration(s). Your project may not work
properly until you apply the migrations for app(s): admin, auth, contenttypes,
sessions.
Run 'python manage.py migrate' to apply them.
March
23, 2023 - 15:57:47
Django
version 4.1.7, using settings 'django_tutorial.settings'
Starting
development server at http://127.0.0.1:8000/
Quit
the server with CONTROL-C.
Kao što možete zaključiti iz navedenih informacija; Django server se pokreće na lokalnom računaru na zadatoj IP adresi i portu. To je uglavnom na adresi 127.0.0.1 i portu 8000 ukoliko niste zadali parametre drugačije. Kad radite na Django projektu ukoliko se izmeni kôd aplikacije, server se automatski restartuje kako bi se promene primenile. Što znači da ćete često pokrećati i zatvarati server tako što pritisnete Ctrl + C na tastaturi. Kad je server pokrenut, možete otvoriti pregledač na navedenoj lokaciji i portu.
(env)
manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$
ls
db.sqlite3 django_tutorial manage.py
(env)
manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$
python3.11 manage.py migrate
Operations to perform:
Apply all migrations: admin, auth,
contenttypes, sessions
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying
admin.0002_logentry_remove_auto_add... OK
Applying
admin.0003_logentry_add_action_flag_choices... OK
Applying contenttypes.0002_remove_content_type_name...
OK
Applying
auth.0002_alter_permission_name_max_length... OK
Applying
auth.0003_alter_user_email_max_length... OK
Applying
auth.0004_alter_user_username_opts... OK
Applying
auth.0005_alter_user_last_login_null... OK
Applying
auth.0006_require_contenttypes_0002... OK
Applying
auth.0007_alter_validators_add_error_messages... OK
Applying
auth.0008_alter_user_username_max_length... OK
Applying
auth.0009_alter_user_last_name_max_length... OK
Applying auth.0010_alter_group_name_max_length...
OK
Applying
auth.0011_update_proxy_permissions... OK
Applying
auth.0012_alter_user_first_name_max_length... OK
Applying sessions.0001_initial... OK
(env)
manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$
Kada se kreiraju Django modeli, definiraju se različita polja koja modeli imaju. Kada se koristi Django ORM - objektno-relacijsko mapiranje, Django će stvoriti tabelu u bazi podataka koja odgovara definiranom modelu. Kad kreirate novi projekat; Django će automatski stvoriti datoteku db.sqlite3 koja će sadržavati sve vaše tabele i podatke. Ovo je jednostavno baza napravljena po defaultu ali se kasnije menja u podešavanjima po vašoj želji. U ovom tutorijalu ćemo raditi sa PostgreSQL bazama podataka. Kad smo odradili migraciju možemo kreirati prvu aplikaciju za naš projekat. Kreiranje super korisnika je jednostavno. Sami odlučite koje ćete informacije koristiti za tu svrhu.
(env)
manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$
python3.11
manage.py createsuperuser
Username
(leave blank to use 'manuel'):
Email
address: manuelsnotalkprogrammingvideos@gmail.com
Password:
Password
(again):
Superuser
created successfully.
(env)
manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$
Admin panel je koristan alat za razvoj veb aplikacija jer omogućuje programerima i administratorima da brzo i jednostavno upravljaju podacima bez potrebe za pisanjem posebnog koda. Django automatski generira korisničko okruženje za vašu aplikaciju, a vi ga možete prilagoditi kako bi odgovarao vašim potrebama. Admin panel se sastoji od više stranica koje vam omogućuju pregled i uređivanje vaših podataka. Osim toga, možete pretraživati i filtrirati podatke, dodavati nove zapise i uređivati postojeće. Također, možete definirati prilagođene obrasce za unos podataka i definirati prilagođene poglede za pregled podataka i mnogo toga. Pokrenite ponovo Django server.
(env) manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$ python3.11 manage.py runserver
Watching
for file changes with StatReloader
Performing
system checks...
System check identified no issues (0 silenced).
March
23, 2023 - 17:19:34
Django
version 4.1.7, using settings 'django_tutorial.settings'
Starting
development server at http://127.0.0.1:8000/
Quit
the server with CONTROL-C.
Otvorite
vaš pregledač i ukucajte sledeći link. http://127.0.0.1:8000/admin
. Zatim unesite korisničko ime i šifru koju ste prethodno kreirali.
Logujte se, kliknite na users i vidićete vaše korisničko ime. Kliknite na njega i dodajte vašem nalogu vaše pravo ime i prezime.
Pritisnite dugme Save i čestitamo. Upravo ste počeli da koristite Admin panel. Zatvorite pregledač, vratite se na terminal; zaustavite server sa Ctrl+C i onda kucajte sledeću komandu.
(env) manuel@manuel-virtual-machine:~/django_tutorial/django_tutorial$ python3.11 manage.py startapp main
Komanda startapp pokreće skriptu manage.py u Python3.11 i kreira novu Django aplikaciju pod imenom main. Vi možete nazvati aplikaciju kako vi hoćete. Kada se kreira nova Django aplikacija, struktura projekta se automatski generiše, što uključuje potrebne datoteke i direktorijume za funkcionalnost aplikacije. Kao rezultat ove komande, Django će kreirati direktorijum main u projektnom direktorijumu, a u tom direktorijumu će se nalaziti inicijalne datoteke potrebne za novu Django aplikaciju. Ova nova aplikacija se obično koristi za organizovanje logike poslovnih procesa i interakcije sa bazom podataka unutar projekta. Izlistajte projekte vašeg projekta i pogledajte šta je sve Django kreirao za vas i pre nego što ste počeli da kreirate vaše veb stranice. Kako svo ovo kodiranje izgleda, možete pogledati i u video-u.
No comments:
Post a Comment