Flask en SQL - CRUD¶
3. basic_CRUD.py¶
Nu bekend is hoe een database opgezet kan een beetje gestoeid worden door een aantal basishandelingen uit te voeren.
Denk erom, vaak worden de scripts op een andere wijze uitgevoerd. Het doel is hier om te laten zien op welke wijze CRUD-commando’s uitgevoerd worden. De Python-file die daarvoor gebruikt wordt, is het bestand basic_CRUD.py. Iedere basishandeling komt even voorbij. De opbouw geschiedt in een vijftal stappen:
Stap 1: Importeren¶
from basic_model_app import db, Cursist
Stap 2: CREATE¶
elsje = Cursist('Elsje',19)
db.session.add(elsje)
db.session.commit()
Op deze manier kun je data aanmaken, toevoegen en vastleggen.
Stap 3: READ¶
Deze stap staat bekend als het opvragen van gegevens uit de database.
Als eerste een overzicht gemaakt van alle cursisten. Met de methode all() worden alle records in een python-lijst gestopt. De tekst wordt opgehaald uit __repr__():
alle_cursisten = Cursist.query.all()
print(*alle_cursisten, sep='\n')
Dit levert het volgende resultaat op:
Cursist Joyce is 40 jaar oud
Cursist Bram is 24 jaar oud
Cursist Elsje is 19 jaar oud
Cursist Elsje is 19 jaar oud
Nu worden de gegevens opgevraagd van de cursist die het id = 2 is toegekend. Eerst worden alle gegevens getoond en op de tweede regel alleen de leeftijd.
cursist_twee = Cursist.query.get(2)
print(cursist_twee)
print(cursist_twee.leeftijd)
Gegevens van cursist 2:
Cursist Bram is 24 jaar oud
24
Stap 4: UPDATE¶
Joyce heeft een beetje gejokt over haar leeftijd. In plaats van de opgegeven 36 jaar is ze inmiddels al 40 geworden. Dat wordt in de database doorgevoerd:
cursist_joyce = Cursist.query.get(1)
cursist_joyce.leeftijd = 40
db.session.add(cursist_joyce)
db.session.commit()
Joyce heeft id = 1 meegekregen. Er worden vier stappen na elkaar uitgevoerd:
- Ophalen juiste record;
- Wijziging aanbrengen;
- Gegevens toevoegen aan database;
- Aanpassing definitief vastleggen.
Stap 5: DELETE¶
Bij nader inzien besluit Elsje toch maar af te zien van een lidmaatschap. Haar record gaat weer verdwijnen.
cursist_elsje = Cursist.query.get(3)
db.session.delete(cursist_elsje)
db.session.commit()
Dit spreekt voor zich: record ophalen, verwijderen, en aanpassing vastleggen.
Na het aanpassen en verwijderen zijn onderstaande gegevens overgebleven in de database:
Cursist Elsje is 19 jaar oud
Cursist Joyce is 40 jaar oud
Cursist Bram is 24 jaar oud