Jaar 3 - Module 2 - Les 7: Database met Python benaderen
Deze week (9 - 13 januari)
afronden werkbladen t/m 7
start eindopdracht sql
Volgende week (16 - 20 januari)
eindopdracht sql afronden
We kunnen nu data in een database opslaan.
We kunnen nu data in een database opslaan. Maar een klant gaat natuurlijk geen queries opschrijven om bij data te komen!
We kunnen nu data in een database opslaan. Maar een klant gaat natuurlijk geen queries opschrijven om bij data te komen!
Daarvoor moeten we een mooie user interface maken, met Python.
In Python kunnen we ook een database benaderen
In Python kunnen we ook een database benaderen
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
Laad de database module in
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
We schrijven weer gewone Python, dus we kunnen alle Pythondingen doen, zoals printen.
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
Maak contact met de database
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
Maak contact met de database
Pas voor nu de naam niet aan!
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
Maak een nieuwe cursor
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
In Python kunnen we ook een database benaderen
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
Schrijf de query in de code
tussen 3 x 2aanhalingstekens
In Python kunnen we ook een database benaderen
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
Voer de query uit
In Python kunnen we ook een database benaderen
import sqlite3
print("Hallo allemaal!")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = """
INSERT INTO personen
values(4, 'Berthe', 'M');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
Sluit netjes af
}
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Wie is hier de echte nummer 4?
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Wie is hier de echte nummer 4?
Berth?
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Wie is hier de echte nummer 4?
Berth? of Karel?
Om dit probleem op te lossen kunnen we een auto-increment gebruiken.
Wie is hier de echte nummer 4?
Berth? of Karel?
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
Wie is hier de echte nummer 4?
Berth? of Karel?
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
CREATE TABLE blijft hetzelfde
CREATE TABLE personen(
Persoonsnummer INTEGER PRIMARY KEY AUTOINCREMENT,
Naam TEXT,
Geslacht TEXT
);
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
Achter het nummer komt nu
INTEGER PRIMARY KEY AUTOINCREMENT
CREATE TABLE personen(
Persoonsnummer INTEGER PRIMARY KEY AUTOINCREMENT,
Naam TEXT,
Geslacht TEXT
);
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
Achter het nummer komt nu
INTEGER PRIMARY KEY AUTOINCREMENT
CREATE TABLE personen(
Persoonsnummer INTEGER PRIMARY KEY AUTOINCREMENT,
Naam TEXT,
Geslacht TEXT
);
Let op!
INTEGER moet volledig geschreven
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
De andere kolommen blijven ook hetzelfde
CREATE TABLE personen(
Persoonsnummer INTEGER PRIMARY KEY AUTOINCREMENT,
Naam TEXT,
Geslacht TEXT
);
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Verwelkom de gebruiker
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Begin een loop bij ja of Ja
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Zolang het antwoord ja is
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Vraag om naam en geslacht
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Maak er een query van met een f-string
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Gebruiker kan nog een naam invoeren
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
print("Welkom bij dit programma!")
print("Je kan personen opslaan in onze database")
antwoord = input("Wil je een naam invoeren?")
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
print(query)
antwoord = input("Wil je nog een naam invoeren?")
print('Dankjewel voor het invoeren!')
Klaar?
Zeg gebruiker gedag!
Nu maken we een echte query ipv alleen printen
Nu maken we een echte query ipv alleen printen:
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
antwoord = input("Wil je nog een naam invoeren?")
Nu maken we een echte query ipv alleen printen:
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
antwoord = input("Wil je nog een naam invoeren?")
Maak de query hier
Nu maken we een echte query ipv alleen printen:
while antwoord == 'Ja' or antwoord == 'ja':
naam = input("Welke naam wil je invoeren?")
geslacht = input("Wat is het geslacht?")
connectie = sqlite3.connect('SQLite_Python.db')
cursor = connectie.cursor()
query = f"""INSERT INTO personen (Naam, Geslacht)
values('{naam}', '{geslacht}');"""
cursor.execute(query)
cursor.close()
connectie.commit()
connectie.close()
antwoord = input("Wil je nog een naam invoeren?")
Voer hier de query uit
Lever je code pas in als je hebt gezien wat de uitkomst is en die hebt gecontroleerd.
Lever je code pas in als je hebt gezien wat de uitkomst is en die hebt gecontroleerd.
Probeer ook verschillende namen en waardes uit!