2014-03-31 134 views
0

我對模板引擎非常陌生,需要更聰明的人提供幫助。試圖用Flask模板生成搜索結果,遇到了很多痛苦。瓶:變量未顯示在Flask模板中

@app.route('/*?search', methods=['POST', 'GET']) 
    if request.method == 'GET': 
     if request.args.get('q'): 

      qList = re.sub("[^\w]", " ", request.args.get('q')).split() 

      htmlA = """ 
        <div class="results" > 
        <p> 

        """ 
      htmlB = """ 
        </p> 
        <br></br> 
        </div> 
        """ 
      found = None 
      for it in qList : 
       found = htmlA + RESULT_BLAH_BLAH_METHOD(it) + htmlB 

      return render_template('list_of_found_items.html', found=found) 

和HTML模板部分:

<somewhere in html> 
    {% block content %} 
     {{ found }} 
    {% endblock %} 
</somewhere in html> 

有了這個,結果沒有,即使是現有的網頁上顯示和打印檢查控制檯輸出。我錯過了什麼?謝謝。

+1

是什麼'L'?它是空的嗎? – njzk2

+1

'rez'應該是什麼? – njzk2

+0

謝謝。我剛編輯過,但沒有出現。 – Alex

回答

1

autoescaping從Python中直接寫入HTML阻止。您的代碼可以重新寫爲:

qList = re.sub("[^\w]", " ", request.args.get('q')).split() 
return render_template('list_of_found_items.html', items = map(RESULT_BLAH_BLAH_METHOD, qList)) 

而下面的模板

<somewhere in html> 
    {% block content %} 
     {% for item in qList %} 
      <div class="results" > 
       <p>{{item}}</p> 
       <br></br> 
      </div> 
     {% endfor %} 
    {% endblock %} 
</somewhere in html> 
+0

出於某種原因TypeError:'str'對象不可調用 - 在「map()」函數中。試圖找到原因.. – Alex

+0

'RESULT_BLAH_BLAH_METHOD'是一種方法,對不對? – njzk2

+0

當然我用真實的方法名稱命名它。 – Alex