Jaar 4 - Module 1 - Les 3: Templates in Flask & Dictionaries
Leren hoe websites werken
Wat het verschil is tussen server & client software
Leren hoe websites werken
Wat het verschil is tussen server & client software
Zelf een website maken met Python, HTML & Javascript
Voor jezelf, of voor een eigen klant
Leren hoe websites werken
Zelf een website maken met Python
Python kennis opfrissen en verdiepen
Wat een dictionary is in Python
Hoe je een template gebruikt in Flask
Dit programma gebruikt een lijst.
In een lijst halen we een element op met een numerieke index, oftewel, een getal.
dieren = ['schildpad', 'kikker']
print(dieren[0])
Dit programma gebruikt een lijst.
In een lijst halen we een element op met een numerieke index, oftewel, een getal.
Bij een lange lijst is dat niet zo handig.
dieren = ['schildpad', 'kikker', 'hagedis', 'blobvis', 'hinde', ...]
print(dieren[15])
Dit programma gebruikt een lijst.
In een lijst halen we een element op met een numerieke index, oftewel, een getal.
Bij een lange lijst is dat niet zo handig. Als we veel dingen van verschillende soorten opslaan, gebruiken we liever een dictionary.
dieren = ['schildpad', 'kikker', 'hagedis', 'blobvis', 'hinde', ...]
print(dieren[15])
Dit programma gebruikt een dictionary.
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Aanwijzen lijkt op aanwijzen bij een lijst, maar met een naam ipv een getal
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Aanwijzen lijkt op aanwijzen bij een lijst, maar met een naam ipv een getal
De naam is een string dus aanhalingstekens zijn nodig
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Ieder veld of field krijgt een naam, altijd een string
Dus ook hier aanhalingstekens!
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Ieder veld of field krijgt een naam, altijd een string
Na het veld komt een dubbele punt
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Ieder veld of field krijgt een naam, altijd een string
Na het veld komt een dubbele punt
Dan komt de waarde, dan ieder Python type zijn
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Ieder veld of field krijgt een naam, altijd een string
Na het veld komt een dubbele punt
Dan komt de waarde, dan ieder Python type zijn
Een string mag
Dit programma gebruikt een dictionary.
gebruiker = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print(gebruiker['voornaam'])
Instellen gaat anders dan bij een lijst
Ieder veld of field krijgt een naam, altijd een string
Na het veld komt een dubbele punt
Dan komt de waarde, dan ieder Python type zijn
Een getal mag ook!
gebruiker = {
voornaam: 'Piet',
achternaam: 'de Vries',
geboortejaar: 2000
}
print(gebruiker['voornaam'])
'gebruiker' = {
'voornaam': 'Piet',
'achternaam': 'de Vries',
'geboortejaar': 2000
}
print('gebruiker'['voornaam'])
adres_blaak = {
'straat': 'Blaak',
'nummer': 166
}
gebruiker = {
'voornaam': 'Carl',
'achternaam': 'Johnsons',
'adres': adres_blaak
}
print(gebruiker['voornaam'])
adres_blaak = {
'straat': 'Blaak',
'nummer': 166
}
gebruiker = {
'voornaam': 'Carl',
'achternaam': 'Johnsons',
'adres': adres_blaak
}
print(gebruiker['adres']['straat'])
HTML is de codetaal die bepaalt hoe websites eruit zien.
HTML is de codetaal die bepaalt hoe websites eruit zien.
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo allemaal!
<p> Welkom </p>
</body>
</html>
HTML is de codetaal die bepaalt hoe websites eruit zien.
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo allemaal!
<p> Welkom </p>
</body>
</html>
Maar... een HTML pagina is "statisch".
HTML is de codetaal die bepaalt hoe websites eruit zien.
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo allemaal!
<p> Welkom </p>
</body>
</html>
Maar... een HTML pagina is "statisch".
Statisch betekent dat de pagina altijd hetzelfde is, en niet kan veranderen door een actie van de gebruiker.
HTML is de codetaal die bepaalt hoe websites eruit zien.
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo allemaal!
<p> Welkom </p>
</body>
</html>
Maar... een HTML pagina is "statisch".
Statisch betekent dat de pagina altijd hetzelfde is, en niet kan veranderen door een actie van de gebruiker.
Flask zorgt ervoor dat pagina's wel dynamisch worden, met templates.
Met Flask mag je variabelen
invoegen in een HTML pagina.
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo allemaal!
<p> Welkom </p>
</body>
</html>
Met Flask mag je variabelen
invoegen in een HTML pagina.
Dat doen we met dubbele krulhaakjes!
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo {{name}}!
<p> Welkom </p>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo {{name}}!
<p> Welkom </p>
</body>
</html>
Met Flask mag je variabelen
invoegen in een HTML pagina.
Dat doen we met dubbele krulhaakjes!
Vanuit Flask geef je de variabele mee aan het template.
Even opfrissen!
@app.route('/')
def hello():
return "Hallo leerlingen!"
Even opfrissen!
@app.route('/')
def hello():
return "Hallo leerlingen!"
Welke pagina wordt er geladen?
Even opfrissen!
@app.route('/')
def hello():
return "Hallo leerlingen!"
Dit is ons antwoord
Flask kan ook een variabele uit de URL halen.
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "Hallo " + name
Flask kan ook een variabele uit de URL halen.
Welke pagina wordt er geladen?
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "Hallo " + name
Flask kan ook een variabele uit de URL halen.
De tekst achter de slash
komt in de variabele name
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "Hallo " + name
Flask kan ook een variabele uit de URL halen.
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "Hallo " + name
Flask kan die variabele gebruiken
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "<b>Hallo " + name + "</b>"
We kunnen hier dus ook HTML code neerzetten.
# Parameter example
@app.route('/hello/<string:name>')
def hello_name(name):
return "<b>Hallo " + name + "</b>"
We kunnen hier dus ook HTML code neerzetten.
Maar, dat wordt snel een rommeltje.
We werken liever met templates.
@app.route('/hello_template/<string:name>')
def hello_template(name):
return render_template('front_page.html',name=name)
Geef een template als antwoord
@app.route('/hello_template/<string:name>')
def hello_template(name):
return render_template('front_page.html',name=name)
Het template front_page.html
@app.route('/hello_template/<string:name>')
def hello_template(name):
return render_template('front_page.html',name=name)
Het template front_page.html
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo {{name}}!
<p> Welkom </p>
</body>
</html>
@app.route('/hello_template/<string:name>')
def hello_template(name):
return render_template('front_page.html',name=name)
Variabele name in het template wordt de name uit de url
<!DOCTYPE html>
<html>
<head>
<title>Welkom op deze site!</title>
</head>
<body>
Hallo {{name}}!
<p> Welkom </p>
</body>
</html>
Maak hier een nieuwe map
Maak hier een nieuw HTML bestand