Stundas uzdevums: Savienot HTML/CSS/JS priekšgalu ar Flask backend, lai izveidotu pilnvērtīgu lietotni.
70 min darba sadalījums: 1. uzdevums (~20 min) - atjauno teorijas piemēru vai minimālo prototipu; 2. uzdevums (~25 min) - pielieto to galvenajā uzdevumā; 3. uzdevums (~25 min) - pārbaudi rezultātu, izlabo kļūdas un tikai beigās pieraksti vienu secinājumu. Papildus/4. līmeņa uzdevums ir paredzēts tikai tad, ja pamatdarbs ir pabeigts.
Pirms sāc: izmanto iepriekš apgūto un šīs lapas teorijas/koda piemērus. Ja vajadzīga jauna komanda vai rīks, vispirms atrodi tās paraugu teorijas sadaļā.
JavaScript fetch() API ļauj nosūtīt HTTP pieprasījumus no pārlūka uz serveri.
// GET pieprasījums
async function ielādētRezultātus() {
const r = await fetch("http://localhost:5000/api/rezultati");
if (!r.ok) {
console.error("Kļūda:", r.status);
return;
}
const dati = await r.json();
console.log(dati);
}
// POST ar JSON
async function pievienot(vards, punkti) {
const r = await fetch("/api/rezultati", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ vards, punkti })
});
return await r.json();
}
CORS: Ja frontend ir uz http://localhost:8080, bet backend uz :5000, pārlūks bloķē pieprasījumus drošības dēļ. Risinājums Flask pusē:
from flask_cors import CORS
CORS(app) # atļauj visiem; produkcijā konkrēti norādi atļautos domēnus
Šis ir īss iesildīšanās uzdevums. Nokopē sagatavi, ielīmē to pareizajā koda vietā un palaid. Šeit pietiek droši izmēģināt tēmu 12.4 Front-end + API integrācija; detalizētu izpratni veidosi nākamajos uzdevumos.
Kopējamais piemērs vai sagatave: izmanto šo bloku kā starta punktu, nevis kā gala risinājumu.
from flask_cors import CORS
CORS(app) # atļauj visiem; produkcijā konkrēti norādi atļautos domēnus
main.py failā un palaid no termināļa.Pievieno šīs stundas paņēmienu kā nelielu, strādājošu projekta daļu.
apstrada_gajienu(), rezultats vai routes.py.Pārbaudi, vai algoritms darbojas paredzami ar dažādiem datiem.
Ja pamatdarbs ir pabeigts, paplašini projektu ar vienu nelielu programmētu uzlabojumu.
e.preventDefault() - vienmēr pirmais POST handler-ī.r.json() mestu izņēmumu.