Wie kann ich meine Flask -App mit meiner SQLite3 -Datenbank verbinden?Python

Python-Programme
Anonymous
 Wie kann ich meine Flask -App mit meiner SQLite3 -Datenbank verbinden?

Post by Anonymous »

Hallo, ich versuche, ein Kundenfeedback -Formular zu erstellen. Ich habe es geschafft, die Seiten zu erstellen, die ich brauche, aber ich habe Schwierigkeiten, meine App mit meiner SQLite3 -Datenbank zu verbinden. Daten aus dem Kundenfeedback-Formular und halten Sie es in einer Datenbank. < /p>

In dem Feedback-Formular werden sie aufgefordert, ihren Namen einzugeben. Wählen Sie einige Antworten aus einer Drop-Box-Auswahl aus , und um am Ende einen Kommentar zu schreiben. Die Startseite, auf der sie ihren Namen und Kommentar sehen können (aus dem Feedback -Formular entnommen). & ausführen (viel einfacher für mich als MySQL), aber ich fehlt etwas, weil es keine Verbindung zu meiner Datenbank herstellt. < /p>

Mein Python -Flask -Code: < /p>

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))
< /code>

Wenn ich versuche, ein Feedback -Formular einzureichen, erhalte ich:
SQLite3.ProgrammingError: SQLite -Objekte, die in einem Thread erstellt wurden, können nur in demselben Thread verwendet werden. < /p>

Ich kann die HTML -Datei auf Anfrage hochladen. Ich bin mir nicht sicher, ob ich Platz dazu habe, zusammen mit meiner Python -Datei zu tun.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post