如何使用Flask返回列表

时间:2016-07-26 14:22:14

标签: python-2.7 flask

我正在尝试构建一个网页,其中包含存储在我的数据库中的调查问题和答案。我从数据库中得到两个单独列表中的问题和答案,我想返回它们(将它们相互组合)但我收到了这个错误"列表对象不可调用"。代码是:

@app.route('/show/<quest>')
def show(quest):

    q_id = g.db.execute("SELECT id_survey FROM surveys WHERE survey=?",[quest]).fetchone()[0]

    a = g.db.execute("SELECT q_id,a_id FROM mesh WHERE s_id=? ORDER BY q_id",[q_id]).fetchall()

    questions=list()
    answers=list()

    for i in a:
        b = g.db.execute("SELECT question FROM questions WHERE id_questions=?",[i[0]]).fetchone()[0]
        c = g.db.execute("SELECT answer FROM answers WHERE id_aswers=?",[i[1]]).fetchone()[0]

        domande.append(b)
        risposte.append(c)

    return domande + answers

理想的结果应该是:

调查标题

问题1:答案

问题2:答案

...

等等

P.S。:例如,2列出问题和答案是这样的:

问题= [你最喜欢的颜色?&#39;,你最喜欢的颜色?&#39;,你最喜欢的颜色?&#39;,你喜欢意大利面吗? ?&#39;,你喜欢意大利面吗?&#39;]

答案= [U&#39;红色&#39;中,u&#39;绿色&#39;中,u&#39;蓝色&#39;中,u&#39;是&#39;中,u&#39;无&#39; ]

它们总是具有相同的长度。提前谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个:

@app.route('/show-quest')
def showquestion():
    questions = ['favourite color?','favourite color?','favourite color?','do you like pasta?','do you like pasta?']
    answers = ["red","green",'blue','yes','no']
    return render_template('question.html', questions=questions, answers=answers)

question.html

{% for question in questions %}
    <p>{{question[0]}}</p>
    {% for answer in answers[0:3] %}
        <p>{{answer}}</p>
    {% endfor %}
{% endfor %}