【发布时间】:2017-02-10 12:47:02
【问题描述】:
我在获取 HTML 页面以使用 Python 和 Flask 显示我的 SQLite3 数据时遇到问题。我在这里发现了一个问题并使用了相同的代码,加上不同的变体,但没有成功。没有错误消息和 HTML 页面加载,但是没有数据存在。这是我用来获取数据的代码;
@app.route("/viewpackages", methods=['GET'])
def viewpackages():
con = sqlite3.connect('utpg.db')
db = con.cursor()
user_id = session.get('id')
getpackages = db.execute("SELECT pck_id, client_id, date, price, privatelesson,"
"shortgamelesson, playinglesson, notes FROM packages WHERE client_id = ?;", (user_id, ))
return render_template("view_packages.html", items=getpackages.fetchall())
这是我试图用来显示数据的代码;
<table>
{% for item in items %}
<tr>
<td>{{column1}}</td>
<td>{{column2}}</td>
<td>{{column3}}</td>
<td>{{column4}}</td>
<td>{{column5}}</td>
<td>{{column6}}</td>
<td>{{column7}}</td>
<td>{{column8}}</td>
</tr>
{% endfor %}
</table>
我尝试将“列”更改为实际的数据库列名,但问题相同。我尝试调用 SELECT * 而不是每个单独的列,同样的问题。如果我在 python 中运行这段代码;
con = sqlite3.connect('utpg.db')
db = con.cursor()
user_id = session.get('id')
getpackages = db.execute("SELECT pck_id, client_id, date, price, privatelesson, shortgamelesson, playinglesson, notes FROM packages WHERE client_id = ?;", (user_id, ))
packages = getpackages.fetchall()
for row in packages:
print(row)
它返回所需的结果。所以我认为 HTML 某处存在问题,但我无法弄清楚。
【问题讨论】:
标签: python html flask sqlite jinja2