问题
I am struggling with passing my SELECT all statement results to my view. I am using flask and MySQLdb. What is the proper syntax to display all my results from my table to my HTML page? I would love to pass a list through, but was unable to figure the syntax out for that.
HTML call {{ session.qid }}
just to test, and nothing displayed.
Here's the python code I have so far:
@app.route('/view_answered/', methods=['GET','POST'])
def view_answered():
error = ''
try:
if request.method == 'POST':
c, conn = connection()
clientcid = session['clientcid']
cursor.execute("SELECT * FROM tickets WHERE cid = 1 AND solved = 0")
results = cursor.fetchall()
x = 0
qid = []
difficulty = []
time_stamp = []
title = []
body = []
for row in results:
qid[x] = row[0]
difficulty[x] = row[3]
time_stamp[x] = row[4]
title[x] = row[6]
body[x] = row[7]
x = x + 1
conn.commit()
c.close()
conn.close()
gc.collect()
session['qid'] = qid
session['difficulty'] = difficulty
session['time_stamp'] = time_stamp
session['title'] = title
session['body'] = body
return redirect(url_for('view_answered'))
else:
error = "Something is aloof."
return render_template("view_answered.html")
except Exception as e:
return(str(e))
回答1:
Solved it with this code, much cleaner too!
@app.route('/view_answered/', methods=['GET','POST'])
def view_answered():
error = ''
try:
result = ''
c, conn = connection()
clientcid = session['clientcid']
c.execute("SELECT * FROM tickets WHERE cid = (%s) AND solved = 1", (clientcid,))
result = c.fetchall()
conn.commit()
c.close()
conn.close()
return render_template("view_unanswered.html", result = result)
except Exception as e:
return(str(e))
VIEW (r[0], r[2], etc, corresponding to column position in SQL table)
{% for r in result %}
<li>Question ID: {{ r[0] }}</li>
<li>Difficulty: {{ r[3] }}</li>
<li>Time Submitted: {{ r[4] }}</li>
<li>Title: {{ r[6] }}</li>
<li>Body: {{ r[7] }}</li>
<li>Answer: {{ r[8] }}</li>
<li>By: {{ r[3] }}</li>
<br><br>
{% endfor %}
来源:https://stackoverflow.com/questions/43863584/listing-table-results-to-html-with-flask