title: sending data from html form to SQLite database using python/flask
body: <p>I am trying create a registration program where guests can register and their inf will be saved in a database.</p>
  
  <p>I already created my form and database.
  The only thing I get stuck on is sending the user input from the form to the database.</p>
  
  <p>My HTML code:</p>
  
  <pre><code>{% block body %}
  
  &lt;form action="{{ url_for('my_form') }}" method="POST"&gt;
      &lt;div class="container"&gt;
          &lt;h1&gt;Gasten registratie&lt;/h1&gt;
          &lt;p&gt;Vul dit formulier in om te registreren&lt;/p&gt;
          &lt;hr&gt;
  
          &lt;label for="First-Name"&gt;&lt;b&gt;Voornaam&lt;/b&gt;&lt;/label&gt;
          &lt;input type="text" id="First-Name" placeholder="Vul hier uw voornaam in" name="Voornaam" required&gt;
  
          &lt;label for="Last-Name"&gt;&lt;b&gt;Achternaam&lt;/b&gt;&lt;/label&gt;
          &lt;input type="text" id="Last-Name" placeholder="Vul hier uw achternaam in" name="Achternaam" required&gt;
  
  
          &lt;label for="Company-name"&gt;&lt;b&gt;Bedrijfsnaam&lt;/b&gt;&lt;/label&gt;
          &lt;input type="text" id="Company-name" placeholder="Vul hier uw bedrijfsnaam in" name="Bedrijfsnaam" required&gt;
  
  
          &lt;label for="Date"&gt;&lt;b&gt;Datum&lt;/b&gt;&lt;/label&gt;
          &lt;input type="date" id="Date" placeholder="Selecteer de Datum" name="Datum" required /&gt;
          &lt;hr&gt;
  
  
          &lt;p&gt;In het kader van onze ISAE certificering registreren wij uw gegevens.&lt;/p&gt;
          &lt;p&gt;Wij verwerken uw gegevens volgends de regels van het AVG.&lt;/p&gt;
          &lt;button type="submit" class="registerbtn"&gt;Registreren&lt;/button&gt;
      &lt;/div&gt;
  
  
  &lt;/form&gt;
  
  {% endblock %}
  </code></pre>
  
  <p>My Python code:</p>
  
  <pre><code>from flask import Flask, render_template, url_for, request, redirect
  from datetime import datetime
  import sqlite3 
  from sqlite3 import Error
  
  app = Flask(__name__) 
  
  # hier maak ik de db aan en een connectie
  def create_connection(db_file):
      connection = None;
      try:
          conn = sqlite3.connect(db_file)
          print(sqlite3.version)
      except Error as e:
          print(e)
  
      return conn 
  
  # hier roep ik de functie voor de db aan en maak ik een db file "gast.db"
  if __name__ == '__main__':
      create_connection("gast.db") 
  
  # hier maak ik de table aan voor de db (moet ik nog aanpassen voor sqlite3)
  
  def create_table(conn, create_table_sql):
      try:
          c = conn.cursor()
          c.execute(create_table_sql)
      except Error as e:
          print(e)
  
  def main():
      database = r"gast.db"
  
      sql_create_guests_table = """ CREATE TABLE IF NOT EXISTS guests (
                                          id integer PRIMARY KEY,
                                          voor_naam text NOT NULL,
                                          achter_naam text NOT NULL,
                                          bedrijfs_naam text NOT NULL,
                                          datum date NOT NULL
  
                                      ); """
  
      conn = create_connection(database)
  
      if conn is not None:
          # maak gast table
          create_table(conn, sql_create_guests_table)
  
      else:
          print("Error! cannot create the database connection.")
  
  
  if __name__ == '__main__':
      main()
  
  
  # hier zorg ik ervoor dat 
  @app.route('/')
  def index():
      return render_template("index.html")
  
  
  # hier zorg ik ervoor dat de input uit het formulier naar de db gaat
  @app.route('/my_form', methods=['POST'])
  def my_form():
      if request.method == 'POST':
          guest_vnaam = request.form['Voornaam']
          guest_anaam = request.form['Achternaam']
          guest_cnaam = request.form['Bedrijfsnaam']
          guest_datum = request.form['Datum']
  
          safe_vnaam = guests(voor_naam=guest_vnaam)
          safe_anaam = guests(achter_naam=guest_anaam)
          safe_cnaam = guests(bedrijfs_naam=guest_cnaam)
          safe_datum = guests(datum=guest_datum)
  
          try:
              db.session.add(safe_vnaam)
              db.session.add(safe_anaam)
              db.session.add(safe_cnaam)
              db.session.add(safe_datum)
              db.session.commit()
              return redirect('/')
          except:
              return 'Er ging iets fout met het opslaan van uw gegevens'
  
      else:
          return render_template('index.html')
  
  # hier run ik de app 
  if __name__ == '__main__':
      app.run(debug=True)
  </code></pre>
  
  <p>If someone could help in the right direction, that would be great!
  Thank you in advance!</p>
  
  <p>Kind regards,
  Ronny</p>