Cheatsheet
Snelle referentie voor alles wat je hebt geleerd. Klik op een onderwerp om het te openen.
Python
Variable aanmaken
naam = "Jan"
leeftijd = 16
F-string (tekst met variabelen)
naam = "Jan"
print(f"Hallo {naam}!")
# Hallo Jan!
Dictionary
persoon = {"naam": "Jan", "leeftijd": 16}
print(persoon["naam"]) # Jan
FastAPI
FastAPI app aanmaken
from fastapi import FastAPI
app = FastAPI()
Server starten
fastapi dev main.py
Open: http://127.0.0.1:8000
GET endpoint (JSON)
@app.get("/")
async def root():
return {"bericht": "Hallo!"}
GET endpoint (HTML)
from fastapi.responses import HTMLResponse
@app.get("/pagina", response_class=HTMLResponse)
async def pagina():
return """
<html>
<body><h1>Hallo!</h1></body>
</html>
"""
Static files instellen
from fastapi.staticfiles import StaticFiles
app.mount("/static", StaticFiles(directory="static"), name="static")
HTML bestand serveren (FileResponse)
from fastapi.responses import FileResponse
@app.get("/")
async def home():
return FileResponse("static/pages/home.html")
POST endpoint (Form data)
from fastapi import Form
@app.post("/verstuur")
async def verstuur(naam: str = Form(...)):
return {"naam": naam}
Jinja2 template response
from fastapi import Request
from fastapi.templating import Jinja2Templates
templates = Jinja2Templates(directory="templates")
@app.post("/groet")
async def groet(request: Request, naam: str = Form(...)):
return templates.TemplateResponse(
"resultaat.html",
{"request": request, "naam": naam}
)
HTML
Basis HTML pagina
<!DOCTYPE html>
<html>
<head>
<title>Titel</title>
</head>
<body>
<h1>Heading</h1>
<p>Paragraaf</p>
</body>
</html>
CSS koppelen
<link rel="stylesheet" href="/static/css/style.css">
Afbeelding tonen
<img src="/static/foto.jpg" alt="Beschrijving">
Link naar andere pagina
<a href="/about">Ga naar About</a>
Formulier
<form method="post" action="/verstuur">
<input type="text" name="naam" required>
<button type="submit">Verstuur</button>
</form>
Let op: name in HTML moet matchen met de parameter in Python!
Template variabele (Jinja2)
In de template:
<h1>Hallo {{ naam }}!</h1>
Wordt vervangen door de waarde uit Python.
Database (sqlitedict)
Installatie
pip install sqlitedict
Data opslaan
from sqlitedict import SqliteDict
with SqliteDict("data.db") as db:
db["naam"] = "Jan"
db.commit() # NIET vergeten!
Data uitlezen
with SqliteDict("data.db") as db:
print(db["naam"])
# Of veilig met default:
print(db.get("naam", "Niet gevonden"))
Data verwijderen
with SqliteDict("data.db") as db:
del db["naam"]
db.commit()
Alles bekijken
with SqliteDict("data.db") as db:
for key, value in db.items():
print(key, value)
Mappenstructuur
Compleet project
je-project/
├── main.py
├── static/
│ ├── css/
│ │ └── style.css
│ ├── pages/
│ │ ├── home.html
│ │ └── form.html
│ └── foto.jpg
└── templates/
└── resultaat.html