Web programiranje (Python)
Kurs web programiranja podrazumeva obuku polaznika za upotrebu aktuelnih web tehnologija radi razvoja dinamičkih web aplikacija poput web prodavnica, medijskih portala, blogova i sl. Tokom kursa polaznici će se detaljno upoznati sa pojmom klijent-server arhitekture i HTTP protokolom, odnosno strukturom HTTP zahteva i odgovora. Takođe će steći praktična znanja neophodna za generisanje HTML sadržaja kao odgovora na HTTP zahtev, mehanizme za upravljanje sesijom, načine za povezivanje i komunikaciju sa serverom baze podataka, kao i načine za preuzimanje i skladištenje podataka u vidu datoteka proizvoljnih formata. Konačno, polaznici će biti upoznati i sa tehnikama koje se tiču modularizacije web aplikacija i pravljenja ponovno upotrebljivih komponenti kao i razvoja modernih REST API-ja i jednostavnih klijentskih web aplikacija.
Pre upisa na ovaj kurs poželjno je da polaznici imaju osnovno znanje HTML-a, CSS-a, JavaScript-a i Python-a.
Prijavite se
Sadržaj kursa
-
1. Uvodno predavanje
- Server klijent arhitektura
- HTTP protokol
- Podešavanje radnog okruženja
-
2. Implementacija jednostavnog web servera
- Modul http.server
- Implementacija jednostavnog obrađivača HTTP zahteva
-
3. Flask radni okvir
- Instalacija radnog okvira
- Definisanje jednostavne Flask aplikacije
- Pokretanje Flask aplikacije u debug režimu
-
4. Serviranje statičkog sadržaja i dinamičko generisanje sadržaja
- Podešavanje Flask radnog okvira za serviranje statičkog sadržaja
- Dinamičko generisanje sadržaja kao odgovora na HTTP zahtev
-
5. Obrada HTTP zahteva
- Tipovi HTTP zahteva i prosleđivanje podataka u zahtevima
- Request objekat i njegovi atributi u Flask radnom okviru
-
6. Generisanje sadržaja pomoću Jinja šablona
- Pojam Jinja šablona
- Interpolacija, iskazi, izrazi i komentari
-
7. Generisanje sadržaja pomoću Jinja šablona
- Kompozicija Jinja šablona
- Nasleđivanje Jinja šablona
-
8. Generisanje sadržaja pomoću Jinja šablona
- Ugrađeni Jinja filteri i testovi
- Pravljenje korisnički definisanih filtera i testova
-
9. Obrada izuzetaka
- Obrada izuzetaka u Flask aplikacijama
- Modul za zapisivanje podataka o događajima u aplikaciji
- Definisanje stranica za prikaz podataka o izuzecima
-
10. Sesija
- Pojam sesije i načini realizovanja sesije
- Upotreba sesije u Flask radnom okviru
- Pristup sadržaju sesije iz Jinja šablona
- Praktična primena sesije na primeru prijave na sajt
-
11. Trajno skladištenje podataka
- Pojam relacione baze podataka
- Modelovanje šeme baze podataka i njeno kreiranje
- Primer modelovanja šeme baze podataka za web prodavnicu
-
12. Trajno skladištenje podataka
- Povezivanje Flask aplikacije na server baze podataka
- Dobavljanje, zapisivanje, izmena i brisanje podataka
- Praktična primena relacione baze podataka za skladištenje podataka o korisnicima i proizvodima u web prodavnici
-
13. Modularne Flask aplikacije
- Pojam modularne Flask aplikacije
- Flask Bueprint kao mehanizam za pravljenje modularne web aplikacije
- Praktična primena Blueprint-ova na primeru web prodavnice
-
14. Upload datoteka
- Slanje datoteka putem HTML forme
- Slanje datoteka kao tela POST zahteva
- Praktična primena slanja datoteka na primeru slika proizvoda u web prodavnici
-
15. REST API
- Pojam REST API-ja, resursa i značenje HTTP metoda u kontekstu REST API-ja
- Kreiranje REST API-ja u Flask radnom okviru
- Praktična primena kreiranja REST API-ja na primeru administrativnog dela web prodavnice
-
16. JWT
- Pojam JSON web tokena
- Generisanje JSON web tokena u Flask aplikaciji
- Upotreba JSON web tokena za proveru prava pristupa
-
17. Generisanje sadržaja na klijentskoj strani
- Generisanje HTML dokumenata na klijentu
- Reagovanje na događaje izazvane na klijentu
- Upotreba Fetch API-ja za generisanje HTTP zahteva i obradu HTTP odgovora
-
18. Generisanje sadržaja na klijentskoj strani
- Upotreba template i slot HTML elmenata
- Definisanje navigacije na klijentskoj strani
-
19. Konfigurisanje i pokretanje web aplikacije na produkcionom serveru
- Instalacija, podešavanje i pokretanje Gunicorn produkcionog servera
- Instalacija, podešavanje i pokretanje Nginx servera kao proxy servera za Gunicorn
- Mehanizmi za specifikaciju konfiguracije Flask aplikacije
- Dostavljanje i pokretanje Flask aplikacije na produkcionom serveru
-
20. Projektni zadatak
- Primena prethodno stečenih znanja za izradu jednostavne poslovne aplikacije