首页 > 解决方案 > 试图以 HTML 格式显示所有记录,但它仅在 HTML 中显示数据库中的最后一项

问题描述

此代码仅输出 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()

标签: pythonhtmlsqliteflask

解决方案


for x in row将第二个循环嵌套在循环中for row in cur以确保它为每个循环运行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()

推荐阅读