✦ Razvoj veb aplikacija uz Django Veb adrese

L3 · Koncept 03 · Osnove veba

Kreći se vebom uz
URL-ove.

URL-ovi pomažu pregledaču da pronađe server, zatraži resurs i kreće se unutar stranice. Nauči da čitaš svaki deo pre nego što Django počne da rutira putanje umesto tebe.

Cilj učenjaPročitaj URL, razreši relativni link, objasni parametre upita i fragmente, pa poveži URL putanju sa budućim Django view-om.
01 Uči02 Istraži u pregledaču03 Proveri razumevanje

Učenje kao gost

Učiš kao gost — sačuvaj svoj napredak!

Napravi besplatan nalog i uči uz Sloby AI mentora, proveru razumevanja i praćenje napretka.

Cela platforma je besplatna tokom 2026. Foundations ostaje zauvek besplatan.

Jedan URL, više korisnih tragova

Anatomija URL-a

Čitaj celu adresu sleva nadesno. Svaki deo ima različitu namenu.

https://example.com/projects/?status=active&page=2#results
  1. httpsŠemaProtokol koji koristi pregledač.
  2. example.comHostIme servera koje pregledač pronalazi.
  3. 443Podrazumevani HTTPS portKoristi se kada izričit port nije naveden.
  4. /projects/PutanjaResurs aplikacije koji treba zatražiti.
  5. status=active&page=2String upitaOpciona uputstva, kao što su filteri ili broj stranice.
  6. #resultsFragmentCilj na strani pregledača; ne šalje se u HTTP odredištu zahteva.

URL putanja nije isto što i putanja fajla na računaru. Django aplikacija odlučuje šta veb putanja znači.

URL je adresa veb resursa

URL govori pregledaču gde da traži resurs i kako da do njega dođe. Domen kao što je example.com je samo host; ceo URL može sadržati i šemu, putanju, string upita i fragment.

https://example.com/projects/?status=active&page=2#results

Budući My Project Hub može koristiti /projects/ za listu projekata. Ta putanja je veb adresa koju bira aplikacija; ne mora biti fizički folder na serveru.

http://localhost:8000/projects/

localhost znači ovaj računar. Izričit :8000 je port koji Django razvojni server često koristi. HTTPS normalno koristi port 443 kada port nije naveden.

↳

Koristi URL-ove primereno: Parametri upita mogu opisivati filtere, pretrage, sortiranje ili stranice. ?status=active sam po sebi ne filtrira projekte: pregledač ga šalje kao deo URL zahteva, a buduća My Project Hub aplikacija može po njemu filtrirati, ignorisati ga ili ga obraditi drugačije. Ne stavljaj lozinke, tokene ili druge tajne u string upita.

Delovi URL-a u jednom zahtevu
GET /projects/?status=active&page=2 HTTP/1.1
Host: example.com

Pregledač šalje putanju i upit serveru. Fragment #results ostaje u pregledaču za navigaciju unutar dokumenta ili drugo ponašanje na strani klijenta.

Parametri upita
/projects/?status=active
/projects/?search=django
/projects/?page=2

String upita često filtrira, pretražuje, sortira ili deli rezultat na stranice. Više parametara odvaja se sa &. View odlučuje da li i kako će ih koristiti.

URL kodiranje
project%20plan
filter=active%26urgent
search=project+hub

Neki znakovi moraju biti kodirani da URL ostane jednoznačan. %20 predstavlja razmak, %26 predstavlja &, a kodiranje upita u stilu formi može koristiti + za razmak. Ne moraš da pamtiš te vrednosti.

Veza sa Django okruženjem
/projects/     → project_list view
/projects/42/   → project_detail view

Django URL rutiranje poredi putanju zahteva da bi izabralo view. Parametri upita mogu uticati na rezultat view-a, ali ih standardno Django poređenje URL obrazaca ne koristi za izbor obrasca.

Apsolutne i relativne URL reference

Apsolutan URL sadrži šemu i host, kao <code>https://example.com/projects/</code>. Reference relativne prema korenu i putanji su obe relativne URL reference u tehničkom smislu: <code>/projects/</code> počinje od korena sajta, dok se <code>projects/</code> i <code>../projects/</code> razrešavaju u odnosu na trenutnu stranicu. U svakodnevnom govoru <code>/projects/</code> često se naziva apsolutnom putanjom, ali nije kompletan apsolutni URL.

Osnovni URL: https://example.com/app/dashboard/
https://example.com/projects/
https://example.com/projects/Apsolutno: koristi tačno ovu adresu.
/projects/
https://example.com/projects/Relativno prema korenu: počni od korena sajta. To nije kompletan apsolutni URL jer nema šemu ni host.
projects/
https://example.com/app/dashboard/projects/Relativno prema putanji: dodaj ispod trenutnog direktorijuma.
../projects/
https://example.com/app/projects/Relativno prema putanji: vrati se jedan segment, zatim uđi u projects.
?status=active
https://example.com/app/dashboard/?status=activeZadrži trenutnu putanju i zameni njen upit.
#results
https://example.com/app/dashboard/#resultsZadrži stranicu i ciljaj fragment.

Završna kosa crta je ovde važna: osnova se završava sa <code>/</code>, pa pregledač tretira <code>dashboard/</code> kao direktorijum kada razrešava <code>projects/</code>.

Od URL-a do Django view-a

Kasnije će Django koristiti deo putanje URL-a iz pregledača da odluči koji view treba da odgovori.

  1. URL u pregledačuhttps://example.com/projects/?status=active&page=2#results
  2. URL putanja/projects/
  3. Django URL rutiranjePoredi obrazac putanje.
  4. ViewGradi odgovor; može da pročita i parametre upita.

String upita ostaje dostupan view-u, ali nije deo uobičajenog Django poređenja URL obrazaca.

Pročitaj URL korak po korak

  1. Pronađi šemu i hostOni govore pregledaču kako da komunicira i koji server da pronađe.
  2. Pročitaj putanjuOna određuje veb resurs koji aplikacija treba da obradi.
  3. Čitaj upit i fragment odvojenoUpit se šalje uz zahtev; fragment ostaje u pregledaču.

Izbegni ova URL pojednostavljenja

  • Domen je ceo URLHost je samo jedan deo. Putanja, upit i fragment mogu promeniti šta pregledač radi.
  • Fragment se šalje serveruPregledač zadržava fragment. Server dobija putanju zahteva i upit, a ne #results.

Vođena vežba — URL detektiv

Uradi ovo u pregledaču

Koristi javnu stranicu koju možeš bezbedno pregledati ili lokalnu stranicu ove platforme. Ne kopiraj cookies, Authorization zaglavlja, tokene, lozinke ni privatne vrednosti upita.

Kontrolna lista za istraživanje URL-a
Pregledač
└── Adresna traka
    └── Developer Tools
        └── Network

Koristi vidljivi URL da vežbaš čitanje delova. U Network panelu odredište zahteva neće sadržati fragment nakon #.

Bezbedno istraži URL

  1. Pročitaj pripremljene URL-oveOznači šemu, host, putanju, upit i fragment u primerima iz ove lekcije.
    https://example.com/projects/?status=active&page=2#results
  2. Predvidi relativni linkNalaziš se na https://example.com/app/dashboard/ i klikneš na ../projects/. Predvidi odredište bez otkrivanja ovde, zatim proveri svoje razmišljanje u Predict vežbi ispod teorije.
  3. Otvori bezbednu stranicuOtvori javnu stranicu dokumentacije ili stranicu u ovoj aplikaciji. Ne pretpostavljaj da example.com/projects/ postoji; to je samo ilustracija.
  4. Promeni bezopasnu vrednost upitaAko bezbedna stranica već ima parametar upita koji nije privatan, promeni mu vrednost i posmatraj adresu. Stranica odlučuje da li to ima efekat.
  5. Dodaj fragmentDodaj fragment kao što je #results odgovarajućoj stranici i posmatraj navigaciju pregledača. Fragment možda neće uraditi ništa ako ne postoji odgovarajući cilj.
  6. Proveri šta stiže do serveraOtvori Network, ponovo učitaj stranicu i uporedi zatraženu putanju i upit sa adresnom trakom. Potvrdi da fragment nije u odredištu zahteva.
↳

Očekivano zapažanje: Address bar: /projects/?status=active#results Request target: /projects/?status=active Tačno ponašanje stranice se razlikuje. Važno je uporediti da zahtev može sadržati putanju i upit, dok fragment ostaje na strani pregledača.

Kada ponašanje URL-a iznenadi

  • Relativni link vodi na neočekivano mestoPrvo napiši ceo osnovni URL. Proveri da li se njegova putanja završava sa <code>/</code>, zatim razrešavaj segment po segment.
  • Promena upita ne radi ništaTo je normalno kada aplikacija ne koristi taj parametar. Tekst upita je samo ulaz koji aplikacija tumači.
  • Fragment nedostaje u Network paneluTo je očekivano. Pregledač ne šalje fragment kao deo HTTP odredišta zahteva.
↳

U narednim Django lekcijama definisaćeš URL obrasce koji povezuju putanje kao što je /projects/ sa view-ovima.

Stranica je otvorena na osnovnom URL-u ispod. Na koju adresu se razrešava relativna referenca?

Prati putanju segment po segment.

Base: https://example.com/app/dashboard/
Reference: ../projects/
Izaberi izlaz

Izgrađuj samopouzdanje samostalnim radom

Dizajniraj URL-ove za My Project Hub

Predloži malu, doslednu URL strukturu pre nego što Django projekat postoji.

Vaš ciljNapiši URL-ove za listu projekata, detalje jednog projekta, filtriranje aktivnih projekata, drugu stranicu rezultata i navigaciju do sekcije rezultata.
/projects/
/projects/42/
/projects/?status=active
/projects/?page=2
/projects/#results

Koristi svoje beleške ili lokalni tekstualni fajl

Nagoveštaji korak po korak
  • Koristi putanju za resurs ili detalj, a ne putanju fajla na računaru.
  • Koristi parametre upita za opciono filtriranje i paginaciju.
  • Koristi fragment samo za lokaciju unutar dokumenta na strani pregledača.

Pitaj Slobyja jedno vodeće pitanje o jednoj putanji, upitu ili fragmentu. Ne lepi privatne URL-ove ni podatke za prijavu.

Sloby, maskota Python AI Tutora

Tvoj mentor za učenje

Prijavite se da pitate Slobyja

Napravite besplatan nalog ili se prijavite za AI smernice tokom učenja.

Prijavite se da proverite svoje razumevanje

Napravite besplatan nalog ili se prijavite da biste dobili AI povratnu informaciju i sačuvali napredak u učenju.

Python AI Tutor · Uči razumevanjem, a ne samo pokretanjem koda.