Wanneer een bestand niet meer genoeg is · oefening
Verbind Python met SQLite
Je SQL-query is klaar, maar Python moet de database openen voordat de query kan worden uitgevoerd. De module sqlite3 geeft je de functie die je daarvoor nodig hebt:
import sqlite3
connection = sqlite3.connect(":memory:")
sqlite3.connect() geeft een verbinding terug. Een verbinding is het Python-object waarmee je programma met een SQLite-database communiceert. Het is geen kopie van de gegevens en ook niet de database zelf.
De speciale tekst :memory: vertelt SQLite om deze kleine database in het geheugen te bewaren in plaats van een bestand aan te maken. De database bestaat zolang de verbinding open is en verdwijnt wanneer die sluit. Daardoor is dit handig om te oefenen.
Open zelf de verbinding
De editor heeft connect.py geopend. Het grootste deel van het programma staat er al, zodat je je op één nieuwe regel kunt richten. Zoek deze tijdelijke waarde:
connection = None
Vervang None door sqlite3.connect(":memory:") en druk op Run.
Run kan ook werk uit eerdere lessen tonen. Zoek de kop == connect.py ==. Als de namen van de voorwerpen eronder verschijnen, volg dan wat de bestaande regels hebben gedaan: ze hebben de bekende tabel items klaargezet, query.sql uitgevoerd, het antwoord afgedrukt en deze laatste regel bereikt:
connection.close()
Door een verbinding te openen, krijgt Python toegang tot de database. Door de verbinding te sluiten, laat het programma SQLite weten dat het klaar is met die verbinding.
Als de aanroep nog niet vertrouwd voelt, vraag Monty dan:
Wat geeft
sqlite3.connect(":memory:")terug en hoe verschilt dat van de database?
Wat is de connection die door sqlite3.connect(":memory:") wordt gemaakt?
Python heeft nu een echte SQLite-database geopend, je SQL-query gebruikt en de verbinding gesloten. Er blijft één vraag over: eindigde daarmee alleen de verbinding, of zijn ook de gegevens verdwenen?
Opdracht
Vervang in connect.py de waarde None door sqlite3.connect(":memory:"). Laat de andere regels staan.
Voer het project uit en zoek het onderdeel == connect.py ==. Je hoort de namen te zien die query.sql teruggeeft. Stuur je werk daarna in.