使用Python 3 / sqlite3输出HTML

时间:2011-05-23 04:55:25

标签: python html sqlite

Python和SQLLite的新手:@ http://www.sqlite.org/sqlite.html - “SQLite命令行外壳”我发现了这个:

更改输出格式: sqlite3程序能够以八种不同的格式显示查询结果:“csv”,“column”,“html”,“insert”,“line”,“list”,“tabs”和“tcl”。您可以使用“.mode”dot命令在这些输出格式之间切换。

问题:如何使用Python 3附带的捆绑SQLite包执行此操作 - 我可以打开连接,获取游标,执行SQL等但我无法弄清楚如何使用 .mode html 命令 - 或任何点命令。

这是一个示例程序 - 但我想使用sqlite .mode html在html格式的最后一行输出结果'print(l)'

import sqlite3
def main():

    conn = sqlite3.connect('c:\dbTest.dat')
    curs=conn.cursor()
    fs='insert into test(token) values ("%s")'
    i=0
    x=input("Enter a number please: ")
    x.lstrip()
    x=int(x)
    while i<x:
        s=fs % ("ABCD"+str(i/0.999)) 
        curs.execute(s)
        i=i+1
    conn.commit()
    rows=curs.execute('select token from test')
    l=rows.fetchall()
    print(l)

main();

任何帮助都将不胜感激。

TIA

1 个答案:

答案 0 :(得分:1)

sqlite的html模式是python中未包含的包装器的一部分,但您可以使用aspw模块来访问它...

import apsw
import StringIO as io
output=io.StringIO()
conn = apsw.Connection('dbTest.dat')
shell=apsw.Shell(stdout=output, db=conn)
# How to execute a dot command
shell.process_command(".mode html")
# continue

有关详细信息,请参阅the ASPW example

修改

如果您使用的是python3 ...

Python 3.2 (r32:88445, Feb 20 2011, 21:29:02) [MSC v.1500 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import io
>>> import apsw
>>> output = io.StringIO()
>>> conn = apsw.Connection(":memory:")
>>> shell = apsw.Shell(stdout=output, db=conn)
>>> shell.process_command(".mode html")
>>>