2017-02-12 41 views
-1

工作,我有這樣的腳本,我導入路線:瓶查詢不表

import sqlite3 

conn = sqlite3.connect("c:/DB/tvldb.db") 

cursor = conn.cursor() 

cursor.execute('''SELECT code, type, issue, item_type, list_code FROM Issues''') 

datarows = cursor.fetchall() 

conn.close() 

那當我打印它工作正常。

這裏是路線:

from flask import Flask, render_template 
import db_issues 

app = Flask(__name__) 

datarows = db_issues.datarows 

@app.route('/issues') 
def issues(): 
    return render_template('leftside.html', datarows=datarows) 

if __name__ == '__main__': 
    app.run(debug=True) 

這裏是模板:

<h2 id="pageTitle"> Missing Items</h2> 
<table style="width:85%" border="1"> 
    <tr> 
     <th>Code</th> 
     <th>Type</th> 
     <th>Issue</th> 
     <th>Entry Type</th> 
     <th>List Code</th> 
    </tr> 
    {% for row in datarows %} 
     <tr> 
      <td>{{ code }}</td> 
      <td>{{ type }}</td> 
      <td>{{ Issue }}</td> 
      <td>{{ item_type }}</td> 
      <td>{{ list_code }}</td> 
     </tr> 
    {% endfor %} 
</table><br><br> 
{% endblock %} 

表顯示正常,但沒有數據填充我一直在試圖整天做這種簡單的事並沒有運氣。根據我檢查的所有教程和stackoverflow答案,這應該是正確的。任何幫助將不勝感激。

回答

1

我想你應該寫你的表像這樣(沒有測試過):

{% for row in datarows %} 
    <tr> 
     <td>{{ row['code'] }}</td> 
     <td>{{ row['type'] }}</td> 
     <td>{{ row['issue'] }}</td> 
     <td>{{ row['item_type'] }}</td> 
     <td>{{ row['list_code'] }}</td> 
    </tr> 
{% endfor %} 
+0

我試過了,它沒有工作。 – user2774415

-1

始終調試要傳遞到渲染頁面的變量,這將讓你知道數據是否是內部的指數或不

print(variable) 

使用此你會被確認,則必須爲更緊密地解析到模板頁面

+0

我在一個單獨的腳本中做到了這一點 – user2774415

0

看什麼數據。它將是元組列表,而不是字典。那有,沒有名字與每個「列」相關聯,所以嘗試在模板引用,也就是說,row.code是要失敗的,因爲row是一個元組。

你可以,有一些工作,把行分爲字典,通過與名稱每個元組在cursor.description找到了匹配的插槽。還有的是如何在sqlite3 docs使用row_factory做榜樣。