programmeren

in python

Jaar 4 - Module 1 - Les 5: User input

Dit jaar gaan we...

 

  • Leren hoe websites werken

  • Wat het verschil is tussen server & client software

Dit jaar gaan we...

 

  • 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

De komende weken gaan we...

 

  • Leren hoe websites werken

  • Zelf een website maken met Python

  • Python kennis opfrissen en verdiepen

vandaag gaan we leren

 

  • Hoe je een gebruiker informatie kan laten invoeren

  • Hoe je die invoer kan verwerken met Python

HTML is de codetaal die bepaalt hoe websites eruit zien.

HTML

HTML is de codetaal die bepaalt hoe websites eruit zien.

HTML

<!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.

HTML

<!DOCTYPE html>
<html>
  <head>
    <title>Welkom op deze site!</title>
  </head>
  <body>
    Hallo allemaal!
    <p> Welkom </p> 
  </body>
</html>

Maar... tot nu toe hebben we alleen invoer aan de gebruiker laten zien.

HTML is de codetaal die bepaalt hoe websites eruit zien.

HTML

<!DOCTYPE html>
<html>
  <head>
    <title>Welkom op deze site!</title>
  </head>
  <body>
    Hallo allemaal!
    <p> Welkom </p> 
  </body>
</html>

Maar... tot nu toe hebben we alleen invoer aan de gebruiker laten zien.

 

We kunnen ook om invoer vragen met een form!

HTML is de codetaal die bepaalt hoe websites eruit zien.

HTML

<!DOCTYPE html>
<html>
  <head>
    <title>Welkom op deze site!</title>
  </head>
  <body>
    Hallo allemaal!
    <p> Welkom </p> 
    <form action="/verwerk_bericht" method="post">
      <div>
        <label for="name">Naam:</label>
        <input type="text" id="naam" name="naam">
      </div>

      <div>
        <label for="mail">E-mail:</label>
        <input type="text" id="mail" name="email">
      </div>

      <div>
        <label for="msg">Bericht:</label>
        <textarea id="msg" name="bericht"></textarea>
      </div>
    
      <div>
        <input type="submit" value="Verzend bericht">
      </div>
    </form>
  </body>
</html>

Maar... tot nu toe hebben we alleen invoer aan de gebruiker laten zien.

 

We kunnen ook om invoer vragen met een form!

HTML is de codetaal die bepaalt hoe websites eruit zien.

HTML

<!DOCTYPE html>
<html>
  <head>
    <title>Welkom op deze site!</title>
  </head>
  <body>
    Hallo allemaal!
    <p> Welkom </p> 
    <form action="/verwerk_bericht" method="post">
      <div>
        <label for="name">Naam:</label>
        <input type="text" id="naam" name="naam">
      </div>

      <div>
        <label for="mail">E-mail:</label>
        <input type="text" id="mail" name="email">
      </div>

      <div>
        <label for="msg">Bericht:</label>
        <textarea id="msg" name="bericht"></textarea>
      </div>
    
      <div>
        <input type="submit" value="Verzend bericht">
      </div>
    </form>
  </body>
</html>

Maar... tot nu toe hebben we alleen invoer aan de gebruiker laten zien.

 

We kunnen ook om invoer vragen met een form!

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

}

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

HTML - Forms

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

Welke pagina in Python de data gaat verwerken

FLASK - Forms verwerken

dat is deze pagina dus!

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Belangrijk! 

Je moet Python vertellen dat er data uit deze pagina komt!

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Importeer boven aan je pagina request!

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met request kan je de data van het formulier opvragen.

Dat is een dictionary! Dus we halen velden op met hun naam.

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met request kan je de data van het formulier opvragen.

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

Dit is de tekst van het bericht in het formulier

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met request kan je de data van het formulier opvragen.

<form action="/verwerk_bericht" method="post">
  <div>
    <label for="name">Naam:</label>
    <input type="text" id="naam" name="naam">
  </div>

  <div>
    <label for="mail">E-mail:</label>
    <input type="text" id="mail" name="email">
  </div>

  <div>
    <label for="msg">Bericht:</label>
    <textarea id="msg" name="bericht"></textarea>
  </div>

  <div>
    <input type="submit" value="Verzend bericht">
  </div>
</form>

Dit is de tekst van het bericht in het formulier

FLASK - Forms verwerken

from flask import Flask, render_template, request



@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']

  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met de data in bericht kan je nu doen wat je maar wilt!

FLASK - Forms verwerken

from flask import Flask, render_template, request

berichten = []

@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']
  berichten.append(bericht)
  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met de data in bericht kan je nu doen wat je maar wilt!

Bijv opslaan in een lijst en renderen!

FLASK - Forms verwerken

from flask import Flask, render_template, request

berichten = []

@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']
  berichten.append(bericht)
  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met de data in bericht kan je nu doen wat je maar wilt!

Bijv opslaan in een lijst en renderen!

FLASK - Forms verwerken

from flask import Flask, render_template, request

berichten = []

@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']
  berichten.append(bericht)
  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met de data in bericht kan je nu doen wat je maar wilt!

Bijv opslaan in een lijst en renderen!

FLASK - Forms verwerken

from flask import Flask, render_template, request

berichten = []

@app.route('/verwerk_bericht', methods=['POST'])
def bericht_verwerken():
  bericht = request.form['bericht']
  berichten.append(bericht)
  
  return render_template('berichten_lijst.html', 
                         berichten = berichten)

Met de data in bericht kan je nu doen wat je maar wilt!

Bijv opslaan in een lijst en renderen!

  <body>
    <p>
    Welkom op mijn website! Hier staan alle berichten.
    </p>
    <p>
    {%for bericht in berichten%}
      
      {{bericht}} <br>
      
    {%endfor%}
    <p>
  </body>

}

demo

opdrachten

opdrachten

  • Gebruik een form op jouw site: 

 

 

 

 

 

opdrachten

  • Gebruik een form op jouw site: 

 

 

 

 

 

opdrachten

  • Gebruik een form op jouw site:



     
  • Extra: 

 

 

opdrachten

  • Gebruik een form op jouw site:



     
  • Extra: 

 

 

Klas 4 - Module 1 - Les 5

By Felienne

Klas 4 - Module 1 - Les 5

Leerdoel Module: Website maken met Flask Lesdoel: User input met Flask

  • 795