Ga naar hoofdinhoud

Online zetten: fastapi run herlaadt niet

Met fastapi dev zag je een wijziging meteen: je sloeg main.py op, en de server startte vanzelf opnieuw. Met fastapi run gaat dat anders. Probeer het.

Een wijziging zonder herstart​

Laat je site draaien met fastapi run main.py. Log in met een verkeerd wachtwoord: je site zegt Naam of wachtwoord klopt niet. Die tekst staat in main.py. Maak er Naam of wachtwoord klopt niet, probeer het opnieuw van, sla op, en log nog een keer verkeerd in.

Je ziet de oude tekst. In de terminal gebeurt niets: geen regel dat de server opnieuw start.

Opnieuw starten​

Stop de server met Ctrl+C, en start hem opnieuw:

fastapi run main.py

Log nog een keer in met een verkeerd wachtwoord. Nu staat de nieuwe tekst er.

fastapi run leest je code één keer, bij het starten, en kijkt daarna niet meer naar je bestanden. Op een server is dat wat je wilt. Een half opgeslagen bestand zet je site niet plat, en het opletten kost geen rekenkracht. Een nieuwe versie gaat pas live als jij de server opnieuw start, in les 35.

Controlevraag
Je server draait met fastapi run. Je verandert in main.py de tekst van een pagina en slaat op. Je herlaadt de pagina in je browser. Wat zie je?
Kies wat jij denkt. Bij het goede antwoord zie je de uitleg.

Er gaat iets mis​

Je template verandert wel meteen​

Je past een tekst in templates/…html aan, en die zie je zonder herstart.

Oorzaak: een template is geen Python-code. Jinja leest een template opnieuw als het bestand veranderd is. Alleen main.py leest de server één keer.

Oplossing: niets: zo werkt het. Een wijziging in main.py vraagt altijd een herstart.

Ctrl+C doet niets​

Oorzaak: de terminal van VS Code heeft de focus niet; je drukte Ctrl+C in de editor, en daar kopieert het.

Oplossing: klik eerst in de terminal, en druk dan op Ctrl+C. Daarna staat de prompt er weer.

Door naar les 3: waar je server luistert.