Wat je server laat zien: een .gitignore en een nette zip
Hier bouw je op verder
- VS Code & Git Bestanden negeren met .gitignore
In les 4 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
?? 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 later ook
gebruikers.db. Sla op en typ opnieuw git status --short:
?? .gitignore
?? dicht.py
?? handleiding.py
?? lees_sessies.py
?? main.py
?? sessies.py
?? twee.py
De databases, .venv en __pycache__ staan er niet meer bij. In het
Explorer-paneel zijn ze grijs geworden. .gitignore zelf staat er wel bij, en
die hoort ook in je repository: zo weet een klasgenoot die je project ophaalt
welke bestanden er niet bij horen.
Met een nieuwere Python staat .venv/ er in de eerste lijst al niet bij: die
zet bij het aanmaken een eigen .gitignore in de map .venv. Zet de regel er
toch in, dan werkt het ook met een oudere Python.
Een zip zonder databases
Een zip maken heeft 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
Je hebt .gitignore gemaakt, maar git status --short laat nog steeds 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 de oude
sessie-id's werken nergens meer, zoals je in opdracht 1 van les 4
zag.
Opdrachten
Opdracht 1: Predict - Een nieuwe database
In de reeks Wachtwoorden maak je later een gebruikers.db. 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 6: in de praktijk.