Python 如何从现有SQLite数据库中获取特定行的列,以便在Flask应用程序中使用?
我正在开发一个Flask应用程序,我有一个网页,希望在其中显示现有的SQLite数据库表 这是我的python文件:Python 如何从现有SQLite数据库中获取特定行的列,以便在Flask应用程序中使用?,python,sqlite,flask,Python,Sqlite,Flask,我正在开发一个Flask应用程序,我有一个网页,希望在其中显示现有的SQLite数据库表 这是我的python文件: import random from flask import Flask, redirect, render_template, request, session import sys; sys.path import sqlite3 import pandas as pd app = Flask(__name__) sql_connect = sqlite3.conne
import random
from flask import Flask, redirect, render_template, request, session
import sys; sys.path
import sqlite3
import pandas as pd
app = Flask(__name__)
sql_connect = sqlite3.connect('questions.sqlite3', check_same_thread = False)
cursor = sql_connect.cursor()
@app.route("/database")
def database():
MCQTable = cursor.execute("SELECT * FROM MCQ;").fetchall()
return render_template("database.html", MCQTable = MCQTable)
这是我在/database route中的html代码,其中我的表中的列是“question”、“ChoiceA”、“ChoiceB”、“ChoiceC”、“ChoiceD”、“CorrectAnswer”:
问题:
精选
精选
ChoiceC
精选
正确答案
{MCQTable%中的行的%s}
{{row[“问题”]}
{{row[“ChoiceA”]}
{{row[“ChoiceB”]}
{{row[“ChoiceC”]}
{{row[“ChoiceD”]}
{{row[“CorrectAnswer”]}
{%endfor%}
但是,当我进行测试时,行[“column”]不起作用。我知道我的SQL表中没有问题,因为我之前做过一个测试,在python中选择了一个列而不是整个表,结果很好。但是,我想这样做,因为我认为这样更有效。一个流行的解决方案是使用SQLAlchemy。 如果在项目中使用SQLAlchemy,则可以执行以下操作:
data_selected = MCQ.query.filter_by(*insert conditional statement here in order to find the row you care about*-> i.e.column_name='XXX').first()
或者,如果要选择所有结果,也可以执行.all(),返回元组列表,而不是字典,因此没有“键”。考虑使用内置的,这样就可以按名称访问列。 ok,谢谢,我不知道FutCHALL返回元组列表。最后,我用第[1]行替换了第[“问题”]行,它通过访问元组中的项来工作。谢谢这个答案对你有帮助吗?
data_selected = MCQ.query.filter_by(*insert conditional statement here in order to find the row you care about*-> i.e.column_name='XXX').first()