我有一个名为“seinfeldFood.sqlite”的数据库,它有4个表:“episodes”,“foods”,“foods_episodes”和“food_types”。我想编写一个程序,以便用户可以从“seinfeldFood.sqlite”中选择一个表,并且表的内容将显示在HTML文件中。此外,HTML表应该1)具有与表名相同的标题,并且2)应该具有标题作为表的列名。
我编写以下代码尝试将sqlite表的内容添加到HTML文件中但我得到了空白的html文件。
import webbrowser
import os
import sqlite3 as sqlite
def getTable(cursor):
cursor.execute("""SELECT tbl_name FROM sqlite_master WHERE type = 'table'""")
tables = [t[0] for t in cursor.fetchall()]
print tables
prompt = "Select table name from: %s\n"%" ".join(tables)
while True:
table = raw_input(prompt)
if table in tables:
return table
def createTable(cursor,tableName):
category = []
results = cursor.execute(("""SELECT * FROM %s""")%(tableName))
for r in results:
category.append(r[1])
cursor.execute("CREATE TABLE IF NOT EXISTS Category (name)")
cursor.execute("""INSERT INTO Category (name) VALUES (?)""",("Category",))
for c in category:
cursor.execute("""INSERT INTO Category (name) VALUES (?)""", (c,))
#conn.commit()
#result_new = cursor.execute("""SELECT * FROM Category""")
#for t in result_new:
#return t
def getHTML(cursor,tableName):
html = \
"""<html>
<head>
<title>%s</title>
<script>
function createTable(%s,%s)
{
}
</script>
</head>
</html>
"""%(tableName,cursor,tableName)
return html
def viewDatabase(dbname):
fo = open(os.path.join(dataDir,"tableView.html"),"w")
fo.write( getHTML(cursor,tablename,))
fo.close()
webbrowser.open_new(dbname)
测试我的功能(它给我空白的HTML文件):
connFood = sqlite.connect(os.path.join(dataDir,"seinfeldFood.sqlite"))
cursor = connFood.cursor()
tablename = getTable(cursor)
createTable(cursor,tablename)
getHTML(cursor, tablename,)
viewDatabase("Category")
这是表格的图像:
答案 0 :(得分:0)
您似乎对许多核心概念感到困惑。 1)如果你已经有一个sqlite表:你不需要&#34; CREATE TABLE IF NOT NOT EXISTS&#34; 2)javascript填充HTML表格?
纯HTML中的表格代码将包含以下内容:
html_part='<table>'
for t in result_new:
html_part=html_part + '<tr><td>' + t + '</td></tr>'
html_part=html_part + '</table>
然后将html_part插入您生成的html doc中的正确位置。
使用webframework可能会更好。试试http://web2py.com
然后,您可以使用智能网格获得可编辑且可搜索的数据库表。