programmeren
in python
Jaar 3 - Module 2 - Les 7: Database met Python benaderen
Planning
-
Deze week (9 - 13 januari)
-
afronden werkbladen t/m 7
-
start eindopdracht sql
-
-
Volgende week (16 - 20 januari)
-
eindopdracht sql afronden
-
database & Python
We kunnen nu data in een database opslaan.
database & Python
We kunnen nu data in een database opslaan. Maar een klant gaat natuurlijk geen queries opschrijven om bij data te komen!
database & Python
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
database & Python
In Python kunnen we ook een database benaderen
database & Python
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
database & Python
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
database & Python
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
database & Python
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
database & Python
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
database & Python
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
database & Python
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
database & Python
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
database & Python
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
}
demo
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Autoincrement
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Autoincrement
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Autoincrement
Wie is hier de echte nummer 4?
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Autoincrement
Wie is hier de echte nummer 4?
Berth?
We kunnen nu meerdere keren hetzelfde nummer invoeren zonder fout.
Autoincrement
Wie is hier de echte nummer 4?
Berth? of Karel?
Om dit probleem op te lossen kunnen we een auto-increment gebruiken.
Autoincrement
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!
Autoincrement
Wie is hier de echte nummer 4?
Berth? of Karel?
demo
Om dit probleem op te lossen kunnen we een auto-increment gebruiken. Die maakt het nummer voor jou aan!
Autoincrement
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!
Autoincrement
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!
Autoincrement
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!
Autoincrement
De andere kolommen blijven ook hetzelfde
CREATE TABLE personen(
Persoonsnummer INTEGER PRIMARY KEY AUTOINCREMENT,
Naam TEXT,
Geslacht TEXT
);
Data invoeren uit Python
Nu we een autoincrement hebben ingesteld kunnen we data invoeren vanuit Python.
Data invoeren uit 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!')
Data invoeren uit 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!')
Verwelkom de gebruiker
Data invoeren uit 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!')
Begin een loop bij ja of Ja
Data invoeren uit 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!')
Zolang het antwoord ja is
Data invoeren uit 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!')
Vraag om naam en geslacht
Data invoeren uit 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!')
Maak er een query van met een f-string
Data invoeren uit 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!')
Gebruiker kan nog een naam invoeren
Data invoeren uit 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!')
Klaar?
Zeg gebruiker gedag!
demo
Data invoeren uit Python
Nu maken we een echte query ipv alleen printen
Data invoeren uit Python
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?")
Data invoeren uit Python
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
Data invoeren uit Python
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
demo
tips vooraf!!!
Lever je code pas in als je hebt gezien wat de uitkomst is en die hebt gecontroleerd.
tips vooraf!!!
Lever je code pas in als je hebt gezien wat de uitkomst is en die hebt gecontroleerd.
Probeer ook verschillende namen en waardes uit!
Zodadelijk in repl.it
opdrachten in repl.it
opdrachten in repl.it
opdrachten in repl.it
opdrachten in repl.it
- Verplicht zijn de opdrachten van les 6 (01 t/m 02)
- Verplicht zijn de opdrachten van les 7 (01 t/m 02)
- Ben je al klaar?
- Maak opdracht 3 van les 7
- Deadline: woensdag (morgen) 12:00
opdrachten in repl.it
- Bij extra opdrachten staat een (X)
- Dit zijn de regels:
- Opdrachten zonder (X) zijn verplicht, die maak je allemaal.
- Opdachten zonder (X) niet af in de les? Dan is het huiswerk
- Die tellen mee voor je inzet.
- Klaar met de opdrachten zonder (X) in de les? Dan ga je door met die met een (X)
- Samenwerken:
- Overleggen mag
- Antwoorden voorzeggen NIET
- Overtypen/multiplayer ook NIET
opdrachten in repl.it
Python Klas 3 - Module 2 - Les 7
By Ebbens
Python Klas 3 - Module 2 - Les 7
Leerdoel Module: werken met databases. Lesdoel: SQL & Python combineren
- 265