Hoe een verzoek werkt
Je hebt alle stukken gebouwd: endpoints, templates, een database, een formulier, JavaScript, htmx en een sessie. Onderweg zag je zes keer wat er bij één handeling achter elkaar gebeurt, browser links en server rechts, elke keer met meer ertussen:
- Wat er gebeurt bij je eerste verzoek: één functie, JSON terug.
- Wat er gebeurt bij één pagina: de browser haalt CSS en afbeeldingen apart op, zonder functie van jou.
- Wat er gebeurt bij één klik: van link tot pagina, met alleen HTML over de lijn.
- Wat er gebeurt bij één formulier: van versturen tot omleiding.
- Wat er gebeurt zonder herladen: hetzelfde formulier met htmx, en een stuk HTML als antwoord.
- Wat er gebeurt bij een sessie: hoe de server je herkent zonder dat de browser iets weet.
Waar hoort jouw code
Kom je vast te zitten bij een nieuwe functie, zoek dan eerst de stap op waar hij thuishoort:
| Wat je wilt | Welke stap | Waar het staat |
|---|---|---|
| Een nieuwe pagina bereikbaar maken | klik, stap 3 | @app.get(...) in main.py |
| Iets uit de database halen | klik, stap 4 | in je endpoint-functie |
| Bepalen hoe het eruitziet | klik, stap 5 | je template in templates/ |
| Reageren op klikken en typen | klik, stap 7 | static/js/app.js |
| Controleren wat een bezoeker instuurt | formulier, stap 4 | in je endpoint-functie, nooit alleen in de HTML |
| Iets aan de server vragen zonder dat de pagina verspringt | zonder herladen, stap 1 | hx-get of hx-post in je HTML, en een endpoint dat een stukje teruggeeft |
| Onthouden wie er terugkomt | sessie, stap 3 | sessies.db, met alleen het id in de cookie |
De regel over controleren is de valkuil. Stap 1 van het formulier gebeurt in de browser, en die is van de bezoeker — zie Server of browser?.