Привет, я пытаюсь создать форму обратной связи с клиентом;Мне удалось создать нужные мне страницы, но у меня возникли трудности с подключением моего приложения к базе данных SQLite3.
Поэтому в своем коде Python я пытаюсь собрать данные из формы обратной связи с клиентами и сохранить ее.в базе данных.
В форме обратной связи им будет предложено ввести свое имя, выбрать некоторые ответы из выпадающего списка и написать комментарий в конце.
Ответыбудет размещен в базе данных (для будущих ссылок - например, отчетов и т. д.), и пользователь будет перенаправлен обратно на домашнюю страницу, где он сможет увидеть свое имя и комментарий (взятые из формы обратной связи).
Я смотрел учебные пособия по sqlite3, которые было довольно легко понять и выполнить (намного проще для меня, чем MySQL), но я что-то упустил, потому что он не подключается к моей базе данных.
мой код фляги python:
from flask import Flask, render_template, redirect, url_for, request, session, flash, g
from functools import wraps
import sqlite3
app = Flask(__name__)
app.secret_key = "random_character_generator" # this would be random or anything the developer wants
app.database = "gymdatabase.db"
conn = sqlite3.connect(app.database)
c = conn.cursor()
def connect_db():
return sqlite3.connect(app.database)
@app.route('/')
def home():
g.db = connect_db()
cur = g.db.execute('select * from posts')
posts = [dict(name=row[0], welcome=row[1], equipment=row[2], cleanliness=row[3], interaction=row[4], comments=row[5], contact=row[6]) for row in cur.fetchall()]
g.db.close()
return render_template('gym_index.html', posts=posts)
@app.route('/feedback', methods=['POST'])
def feedback():
return render_template('gym_feedback.html')
@app.route('/process', methods=['GET', 'POST'])
def process():
g.db = connect_db()
name = request.form['name']
welcome = request.form['welcome']
equipment = request.form['equipment']
cleanliness = request.form['cleanliness']
interaction = request.form['interaction']
comment = request.form['comment']
contact = request.form['yes_no']
conn.commit()
cur = g.db.execute(select * from posts)
posts = [dict(name=row[0], welcome=row[1], equipment=row[2], cleanliness=row[3], interaction=row[4], comments=row[5], contact=row[6]) for row in cur.fetchall()]
g.db.close()
return redirect(url_for('home', posts=posts))
Когда я пытаюсь отправить форму обратной связи, я получаю: sqlite3.ProgrammingError: объекты SQLite, созданные в потоке, могут использоваться только в этом же потоке.
Я могу загрузить HTML-файл по запросу;Я не слишком уверен, есть ли у меня место для этого вместе с моим файлом python.