# Flask form

In deze opdracht ga je in Flask je een eenvoudige webpagina maken met een formulier. In het formulier vraag je de gebruiker om zijn naam en vervolgens gebruik je die naam voor een begroeting.

<div class="flex flex-grow flex-col gap-3" id="bkmrk-maak-een-nieuw-pytho"><div class="min-h-[20px] flex items-start overflow-x-auto whitespace-pre-wrap break-words flex-col gap-4"><div class="markdown prose w-full break-words dark:prose-invert light">1. Maak een nieuw Python-bestand, bijvoorbeeld `app.py`, en open het met een teksteditor.
2. Voeg de volgende code toe aan het Python-bestand:

<div class="bg-black rounded-md mb-4"><div class="flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md">*python*</div></div></div></div></div>```
from flask import Flask, render_template, request

app = Flask(__name__)

@app.route('/')
def home():
    return render_template('index.html')

@app.route('/greet', methods=['POST'])
def greet():
    name = request.form.get('name')
    return render_template('greet.html', name=name)

if __name__ == '__main__':
    app.run(debug=True)
    
```

3. Maak een `templates`-map in dezelfde directory als het Python-bestand.
4. Maak een nieuw HTML-bestand genaamd `index.html` in de `templates`-map en open het met een teksteditor.
5. Voeg de volgende code toe aan het `index.html`-bestand:

```
<br></br><html><br></br><head><br></br>    <title>Flask Opdracht</title><br></br></head><br></br><body><br></br>    <h1>Vul je naam in:</h1><br></br>    <form action="/greet" method="POST"><br></br>        <input type="text" name="name" required><br></br>        <input type="submit" value="Verzenden"><br></br>    </form><br></br></body><br></br></html><br></br> 
```

6. Maak een nieuw HTML-bestand genaamd `greet.html` in de `templates`-map en open het met een teksteditor.
7. Voeg de volgende code toe aan het `greet.html`-bestand:

```
<br></br><html><br></br><head><br></br>    <title>Flask Opdracht</title><br></br></head><br></br><body><br></br>    <h1>Hallo, {{ name }}!</h1><br></br></body><br></br></html><br></br> 
```

8. Sla zowel het Python-bestand (`app.py`), het `index.html`-bestand als het `greet.html`-bestand op.
9. Ga naar de opdrachtprompt of terminalvenster en navigeer naar de projectdirectory waar het Python-bestand zich bevindt.
10. Voer het volgende commando in: `python app.py.`
11. Flask start de ontwikkelingsserver en geeft een URL weer, `http://127.0.0.1:5000/`.
12. Open de weergegeven URL in je webbrowser en je zou een formulier moeten zien waar je je naam kunt invullen en verzenden.
13. Nadat je op "Verzenden" hebt geklikt, zou je begroet moeten worden met de boodschap "Hallo, \[naam\]!" waarbij `[naam]` de ingevoerde naam is.

Met deze eenvoudige opdracht kun je een formulier maken in Flask en de ingevoerde naam gebruiken om een begroeting weer te geven. Je kunt deze opdracht verder aanpassen en uitbreiden met meer functionaliteit en stijling naar wens.

Zorg ervoor dat je begrijpt hoe dit werkt, want in een volgende opdracht moet je zelf een formulier maken.

### JINJA

De HTML-template is een zogenaamde JINJA template. In een JINJA template kan je python variabelen kan je afdrukken door de variabelen tussen {{ }} te zetten.

Als je (via ChatGPT) meer informatie wilt geef dan aan dat je in Flask met een JINJA template werkt.

### Inleveren

1. Schermafdruk van de gehele browser van de pagina waarin je de naam moet invullen, en
2. schermafdruk van de gehele browser van de pagina waarin de boodschap wordt getoond.

</body></html>