试图以 HTML 格式显示所有记录,但它仅在 HTML 中显示数据库中的最后一项
Posted
技术标签:
【中文标题】试图以 HTML 格式显示所有记录,但它仅在 HTML 中显示数据库中的最后一项【英文标题】:Trying to display all records in HTML but it is only presenting last item from the database in the HTML 【发布时间】:2021-11-10 02:13:06 【问题描述】:这段代码只输出Sqlite表中的最后一条记录。它不会将表中的所有记录输出到 html 中。有什么建议吗?
import sqlite3
from flask import Flask, render_template, redirect, request
app = Flask(__name__)
connection = sqlite3.connect('employee.db')
cur = connection.cursor()
cur.execute('SELECT * FROM employee;')
s = "<table style='border:2px solid black'>"
for row in cur:
s = s + "<tr>"
for x in row:
s = s + "<td>" + str(x) + "</td>"
s = s + "</tr>"
cur.close()
@app.route('/')
def main():
return "<html><body>" + s + "</body></html>"
if __name__ == "__main__":
app.run()
【问题讨论】:
你可以试试for row in cur.fetchall()
但iirc for row in cur
应该可以工作......但我可能错了
【参考方案1】:
在for row in cur
循环中嵌套第二个for x in row
循环,以确保它为每个row
运行
这应该可以解决您的问题。
import sqlite3
from flask import Flask, render_template, redirect, request
app = Flask(__name__)
connection = sqlite3.connect('employee.db')
cur = connection.cursor()
cur.execute('SELECT * FROM employee;')
s = "<table style='border:2px solid black'>"
for row in cur:
s += "<tr>"
for x in row:
s += "<td>" + str(x) + "</td>"
s += "</tr>"
cur.close()
@app.route('/')
def main():
return "<html><body>" + s + "</body></html>"
if __name__ == "__main__":
app.run()
【讨论】:
以上是关于试图以 HTML 格式显示所有记录,但它仅在 HTML 中显示数据库中的最后一项的主要内容,如果未能解决你的问题,请参考以下文章
Telegram bot 应该发送包含“&”字符的 URL,但它仅在该字符之前发送 URL,然后将其缩短