2016-07-26 47 views
-1

我正在嘗試構建一個網頁,其中包含存儲在我的數據庫中的調查問題和答案。我從我的數據庫中獲得了兩個單獨列表中的問題和答案,我想返回它們(將它們相互組合),但是我收到了這個錯誤「列表對象不可調用」。該代碼是:如何使用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:答案

...

PS:例如,2個列出的問題和答案是這樣的:??

問題= [u'favourite顏色 '?,u'favourite顏色',u'favourite顏色」,u'do你喜歡麪食? 'u'do你喜歡麪食? ']

答案= [u'red',u'green',u'blue 'u'yes',u'no']

他們總是有相同的長度。先謝謝你。

+1

在燒瓶您應該返回的東西,被髮送到瀏覽器,即HTML。你可以編寫一個模板並以你想要的方式呈現你的列表。你讀過快速入門嗎?你可以在這裏找到更多的信息(http://flask.pocoo.org/docs/0.11/quickstart/#rendering-templates)。 – syntonym

+0

是的,我試圖用HTML編寫模板,但後來我不知道如何管理列表。你能給我一些建議嗎? – Frank

+0

@Frank在Flask和直接在Jinja的文檔中都有關於使用模板的大量文檔:http://jinja.pocoo.org/docs/dev/templates/#for你有什麼具體問題? – davidism

回答

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 %} 
+0

它與我想要的相似,但是你的html代碼打印出每個問題的所有答案,而不僅僅是每個問題的具體答案。 – Frank

+0

@Frank你想要一個問題有一個答案? – roy

+0

沒有。我想要一個問題有多個答案,但每個問題都是特定的。例如我想要:最喜歡的顏色?紅綠藍,你喜歡意大利麪嗎?是否 – Frank