Wat je server laat zien: een .gitignore en een nette zip
Hier bouw je op verder: Bestanden negeren met .gitignore
Weet je dit niet meer zeker? Lees het terug voordat je verdergaat.
- VS Code & Git Bestanden negeren met .gitignore
In les 5 zag je welke bestanden in je map niet bij je code horen. Je kunt ze elke keer met de hand overslaan, maar één keer vergeten is genoeg. Laat het daarom een bestand onthouden.
Een .gitignore voor je server
Staat deze map nog niet in git, typ dan eerst git init in de terminal van
VS Code, zoals in
een repository starten met git init.
Typ daarna git status --short. Die geeft een korte lijst van alles wat git
ziet:
?? .venv/
?? __pycache__/
?? dicht.py
?? gastenboek.db
?? handleiding.py
?? lees_sessies.py
?? main.py
?? sessies.db
?? sessies.py
?? twee.py
Staat .venv/ niet in jouw lijst? Dan heb je Python 3.13 of nieuwer. Die zet
bij het aanmaken een eigen .gitignore in de map .venv, zodat git hem al
overslaat. De rest van de lijst is hetzelfde.
?? betekent: git kent dit bestand nog niet, en neemt het mee zodra je alles
toevoegt. Ook de databases dus.
Maak in VS Code naast main.py een bestand .gitignore, met de punt vooraan,
en zet erin:
.venv/
__pycache__/
*.db
Een regel die eindigt op / slaat een hele map over. *.db slaat elk bestand
over dat op .db eindigt: gastenboek.db, sessies.db, en in je eigen
gastenboek ook gebruikers.db. Sla op en typ opnieuw git status --short.
.gitignore hoort zelf wel in je repository: zo weet een klasgenoot die je
project ophaalt welke bestanden er niet bij horen. De regel .venv/ zet je er
ook in als je Python de map al overslaat; dan werkt hij ook met een oudere
Python.
Een zip zonder databases
Een zip kent geen .gitignore: hij pakt alles wat je selecteert. Kies
in de Verkenner van Windows (of de Finder op een Mac) daarom niet de hele map,
maar alleen wat je wilt delen: main.py, je scripts als iemand die moet zien,
en static/ en templates/ als je project die heeft. Maak daar een zip van.
Open de zip daarna, en kijk of er geen .db-bestand of .venv in staat. Wie
je project nakijkt, heeft je code nodig, niet de berichten en sessie-id's van je
bezoekers. De pagina Project checken vraagt ook alleen om
main.py, static/ en templates/.
Er gaat iets mis
Een database die al in git stond
In deze map kan dat niet, want je begon net met git init. Maar in je eigen
project, dat al langer in git staat, laat git status --short na je
.gitignore misschien nog een database zien, met een M ervoor:
M sessies.db
Oorzaak: je had sessies.db al eerder met git vastgelegd, met een commit.
.gitignore slaat alleen bestanden over die git nog niet kent. Een bestand dat
al in je repository staat, blijft git volgen.
Oplossing: haal het bestand uit git, maar laat het op je computer staan:
git rm --cached sessies.db
Maak daarna een commit. Stond de repository al op GitHub, dan staat het bestand
nog in de oude commits, en kan iedereen het daar ophalen. Gooi dan ook
sessies.db op je computer weg: je server begint met een lege, en kent de
oude sessie-id's niet meer. Wie ze uit GitHub haalt, kan er dan niets mee.
Opdrachten
Opdracht 1: Predict - Een nieuwe database
Je zet later in deze map een server met accounts neer, die een gebruikers.db
maakt. Je .gitignore is niet veranderd.
Vraag: staat gebruikers.db dan in de lijst van git status --short?
Antwoord
Nee. *.db slaat elk bestand over dat op .db eindigt, ook een database die
er nog niet was toen je de regel schreef. Daarom gebruik je hier *.db en niet
de losse namen.
Opdracht 2: Make - In je eigen project
Loop je eigen project na, of je gastenboek uit de FastAPI-lessen: wat laat je server zien, en wat staat er in je map?
Tip
Begin met /docs van je eigen project open. Wat daar staat, is precies wat een
klasgenoot zou zien als je je server openzet.
Antwoord
Loop deze lijst af:
- Elk endpoint op
/docsis voor iedereen bedoeld. Een endpoint dat je voor jezelf maakte, zoalsGET /sessiesuit Sessies, is weg. docs_url=None,redoc_url=Noneenopenapi_url=Nonestaan in jeFastAPI(), voordat je je server openzet zoals in Laat het aan anderen zien.- Er staat een
.gitignoremet.venv/,__pycache__/en*.db. git status --shortnoemt geen.db-bestand.- Een zip die je deelt, bevat geen
.db-bestand en geen.venv.
Voor de handleiding verander je alleen de regel waar je app begint. Vervang je
bestaande app = FastAPI() door:
app = FastAPI(docs_url=None, redoc_url=None, openapi_url=None)
De rest van main.py blijft. Werk je zelf nog aan je project, dan kun je de
handleiding laten staan zolang je server op 127.0.0.1 draait, en hem
uitzetten zodra anderen erbij kunnen.
Door naar les 7: in de praktijk.