Listing table results to HTML with Flask

点点圈 提交于 2019-12-25 16:09:39

问题


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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!