我想使用flask模块从Web框架上的.db文件显示数据库的内容。但是,只能在Web框架上显示行标题。 .db文件中数据库的内容无法在Web框架上加载。有人可以帮我吗?谢谢。 这是我的代码:
from flask import Flask, render_template
import sqlite3
app = Flask(__name__)
def connect_db(db):
con = sqlite3.connect(db)
return con.cursor()
@app.route('/')
def index():
db ='mcu_aurix_git.db'
cur = connect_db(db)
cur.execute("SELECT * FROM mcu_aurix")
data = cur.fetchall()
return render_template('flask.html', rows=data)
if __name__ == "__main__":
app.run(debug=True)
flask.html:
<table class="table table-hover">
<thead>
<tr>
<th>project</th>
<th>branch</th>
<th>id</th>
<th>number</th>
<th>subject</th>
<th>owner_name</th>
<th>owner_email</th>
<th>owner_username</th>
<th>url</th>
<th>commitMessage</th>
<th>createdOn</th>
<th>lastUpdated</th>
<th>open</th>
<th>status</th>
<th>current_date</th>
</tr>
</thead>
<tbody>
{% for row in rows %}
<tr>
<td>{{row.project_name}}</td>
<td>{{row.branch_id}}</td>
<td>{{row.id_id}}</td>
<td>{{row.num_number}}</td>
<td>{{row.subject_name}}</td>
<td>{{row.owner_name}}</td>
<td>{{row.owner_email}}</td>
<td>{{row.owner_username}}</td>
<td>{{row.url_name}}</td>
<td>{{row.commitMessage_name}}</td>
<td>{{row.num_createdOn}}</td>
<td>{{row.num_lastUpdated}}</td>
<td>{{row.num_open}}</td>
<td>{{row.status_name}}</td>
<td>{{row.current_date}}</td>
</tr>
{% endfor %}
</tbody>
</table>
我的代码中是否缺少任何内容?希望任何人都可以在这方面帮助我。提前致谢!
答案 0 :(得分:0)
您没有将rows
变量传递给html页面。
return render_template('flask.html', data=data)
您只传递了data
变量。
如果要在HTML页面中使用rows
,则需要使用
return render_template('flask.html', rows=data)
还有一件事,
{{row.project_name}}
您不能像这样获得project_name
的值,需要使用索引值(行号从0开始)。就像
{{row[0]}}
您可以使用下面的<td>
代码来代替为每个col值手动创建tbody
。
<tbody>
{% for row in rows %}
<tr>
{% for col in row %}
<td> {{ col }} </td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
希望有帮助!