从sqlite表创建html表

时间:2014-03-08 09:12:26

标签: python html sqlite python-2.7

我有一个名为“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")

这是表格的图像:

enter image description here

1 个答案:

答案 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

然后,您可以使用智能网格获得可编辑且可搜索的数据库表。