Я делаю небольшой сайт регистрации для регистрации гостей. Я использую базу данных sqlite3.
Когда я запускаю свой код, я получаю сообщение об ошибке «sqlite3.OperationalError: нет такой таблицы: гости». Но странно то, что в базе данных есть таблица с именем гостей, когда я ее ищу в терминале, см. скриншот.
Имя базы данных: "gast.db" Может кто-то увидеть, что я делаю неправильно?
вот мой код Python / flask:
from flask import Flask, render_template, request
import sqlite3
from sqlite3 import Error
app = Flask(__name__)
# Here I create a DB and a connection
def create_connection(db_file):
conn = None
try:
conn = sqlite3.connect(db_file)
print(sqlite3.version)
except Error as e:
print(e)
return conn
# here I insert the created tab;es
def create_table():
database = r"gast.db"
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)
def create_guest(conn, guests):
sql = ''' INSERT INTO guests(voor_naam,achter_naam,bedrijfs_naam,datum)
VALUES(?,?,?,?) '''
cur = conn.cursor()
cur.execute(sql, guests)
return cur.lastrowid
# index for the html page
@app.route('/')
def index():
return render_template("index.html")
# sending input form form to db
@app.route('/my_form', methods=['POST'])
def my_form():
database = r"gast.db"
if request.method == 'POST':
conn = create_connection(database)
with conn:
guest_vnaam = request.form.get('Voornaam')
guest_anaam = request.form.get('Achternaam')
guest_cnaam = request.form.get('Bedrijfsnaam')
guest_datum = request.form.get('Datum')
if conn is not None:
guest = (guest_vnaam, guest_anaam, guest_cnaam, guest_datum)
create_guest(conn, guest)
return render_template("index.html")
else:
return 'oops, er is iets verkeerd gegaan...'
# This is where I run the app
if __name__ == '__main__':
app.run(debug=True)
Ошибка говорит о том, что что-то идет не так при вызове функции / метода create_guest. Если бы кто-то мог мне помочь, это было бы здорово!
Заранее спасибо