Niveaus vergelijken: Fullstack (FastAPI)
Per concept zie je hier of het op elk niveau basis, gevorderd of expert is. Een verschil met het niveau ervoor heeft een rand. Een streepje: dat concept hoort niet bij dat niveau. Terug naar het overzicht van de leerdoelen.
| Concept | Niveau 1 | Niveau 2 | Niveau 3 |
|---|---|---|---|
| FastAPI | |||
| virtual environment en FastAPI package installerenLeer het in: Installatie | Basis | Basis | hoort niet bij dit niveau |
| FastAPI applicatie startenLeer het in: Je eerste endpoint | Basis | Basis | hoort niet bij dit niveau |
| je kunt de ontwikkelaarstools gebruiken om te kijken wat de browser doetLeer het in: Kijken wat de browser doet | Basis | Basis | hoort niet bij dit niveau |
| FileResponse als responstypeLeer het in: HTML in bestanden | Basis | Basis | hoort niet bij dit niveau |
| HTMLResponse als responstypeLeer het in: HTML tonen | Basis | Basis | hoort niet bij dit niveau |
| meerdere GET-routesLeer het in: Je eerste endpoint | Basis | Basis | hoort niet bij dit niveau |
| CSS importeren van los bestandLeer het in: CSS in een eigen bestand (static files) | Basis | Basis | hoort niet bij dit niveau |
| afbeelding importeren van los bestandLeer het in: Afbeeldingen tonen | Basis | Basis | hoort niet bij dit niveau |
| links tussen pagina's via endpointLeer het in: Links tussen pagina's | Basis | Basis | hoort niet bij dit niveau |
| Jinja2 template met variabelenLeer het in: Templates met Jinja2 | Gevorderd | Basis (anders dan Niveau 1) | hoort niet bij dit niveau |
| data opslaan met sqlitedictLeer het in: Gegevens opslaan met SqliteDict | Basis | Basis | hoort niet bij dit niveau |
| data uitlezen met sqlitedictLeer het in: Gegevens opslaan met SqliteDict | Basis | Basis | hoort niet bij dit niveau |
| formulier data opslaan via sqlitedictLeer het in: Een formulier opslaan | Gevorderd | Basis (anders dan Niveau 1) | hoort niet bij dit niveau |
| een geneste dictionary in sqlitedictLeer het in: Een dictionary als waarde | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| Een dictionary aanpassen: ophalen, aanpassen, terugzettenLeer het in: Een dictionary aanpassen: ophalen, aanpassen, terugzetten | Expert | Basis (anders dan Niveau 1) | hoort niet bij dit niveau |
| Doorsturen na opslaan (redirect)Leer het in: Doorsturen na opslaan (redirect) | Gevorderd | Basis (anders dan Niveau 1) | hoort niet bij dit niveau |
| if else in python of jinja2 templateLeer het in: Nog niets? if en else in je template | Gevorderd | Gevorderd | hoort niet bij dit niveau |
| Registreren: een account opslaanLeer het in: Registreren: een account opslaan | Gevorderd | Basis (anders dan Niveau 1) | hoort niet bij dit niveau |
| gebruiker laten inloggenJe formulier heeft een wachtwoordveld, zodat iemand met naam en wachtwoord inlogt.Leer het in: Inloggen: een wachtwoord controleren | Gevorderd | Gevorderd | hoort niet bij dit niveau |
| Inloggen: een wachtwoord controlerenDe server vergelijkt het wachtwoord met dat van het account en stuurt bij een fout een 401.Leer het in: Inloggen: een wachtwoord controleren | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| path parametersLeer het in: Eén route voor veel pagina's: path-parameters | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| htmxLeer het in: Zonder herladen met htmx | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| CookiesLeer het in: Onthouden met een cookie | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| SessiesLeer het in: Onthouden op de server: sessies | Expert | Gevorderd (anders dan Niveau 1) | hoort niet bij dit niveau |
| Linux | |||
| door mappen lopen en bestanden lezen (cd, ls, cat)Leer het in: door mappen lopen en bestanden lezen (cd, ls, cat) (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| bestanden maken, kopiëren, verplaatsen en weggooienLeer het in: bestanden maken, kopiëren, verplaatsen en weggooien (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| rechten lezen met ls -l: eigenaar, groep en rwxLeer het in: rechten lezen met ls -l: eigenaar, groep en rwx (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| programma's installeren met sudo aptLeer het in: programma's installeren met sudo apt (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| een bestand bewerken met nanoLeer het in: een bestand bewerken met nano (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| inloggen op een andere computer met ssh en een sleutelpaarLeer het in: inloggen op een andere computer met ssh en een sleutelpaar (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| zoeken met grep en de pipeLeer het in: zoeken met grep en de pipe (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| processen en diensten bekijken, starten en stoppen (ps, systemctl)Leer het in: processen en diensten bekijken, starten en stoppen (ps, systemctl) (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| rechten en groepen aanpassen (chmod, usermod)Leer het in: rechten en groepen aanpassen (chmod, usermod) (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| bestanden kopiëren met scp en een tunnel met sshLeer het in: bestanden kopiëren met scp en een tunnel met ssh (cursus Linux) | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| Veiligheid | |||
| de handleiding op /docs uitzettenLeer het in: Wat je server laat zien: de handleiding uitzetten | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| een .gitignore, zodat databases en geheimen niet in je repository komenLeer het in: Wat je server laat zien: een .gitignore en een nette zip | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| invoer controleren met grenzen in FormLeer het in: Invoer controleren: grenzen in Form | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| HTML van een bezoeker blijft tekst (templates escapen, geen |safe)Leer het in: HTML van een bezoeker: templates escapen vanzelf | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| op de server controleren wie iets mag, met 403Leer het in: Wie mag wat: de controle met 403 | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| een limiet op verzoeken met slowapiLeer het in: Te veel verzoeken: een limiet met slowapi | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| cookies afschermen met httponly en samesiteLeer het in: Cookies afschermen: httponly | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| wachtwoorden als hash opslaan met Argon2Leer het in: Wachtwoorden: registreren met Argon2 | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| inlogpogingen beperkenLeer het in: Wachtwoorden: inlogpogingen beperken | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| Online zetten | |||
| de packages van je project in requirements.txtLeer het in: Online zetten: de lijst van je packages | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| een README in je repositoryLeer het in: Online zetten: een README | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| je project in Ubuntu ophalen en draaien (git clone, venv, fastapi run)Leer het in: Online zetten: je site draait in Linux | hoort niet bij dit niveau | hoort niet bij dit niveau | Basis |
| je site in een image met een DockerfileLeer het in: Online zetten: je site in een image | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| alles in één compose.yaml, met een volume voor je databasesLeer het in: Online zetten: alles in één bestand | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| een server met een eigen gebruiker, waarop je alleen met een sleutel inlogtLeer het in: Online zetten: alleen met een sleutel | hoort niet bij dit niveau | hoort niet bij dit niveau | Gevorderd |
| de server dichtzetten: firewall en automatische updatesLeer het in: Online zetten: de firewall | hoort niet bij dit niveau | hoort niet bij dit niveau | Expert |
| je site op je domein met HTTPS via TraefikLeer het in: Online zetten: je domein met HTTPS | hoort niet bij dit niveau | hoort niet bij dit niveau | Expert |
| een back-up maken en terugzettenLeer het in: Online zetten: een back-up | hoort niet bij dit niveau | hoort niet bij dit niveau | Expert |
| een nieuwe versie uitrollenLeer het in: Online zetten: een nieuwe versie uitrollen | hoort niet bij dit niveau | hoort niet bij dit niveau | Expert |