Python - 如何打印Sqlite表格

9

这里有一些简单的Python代码,用于查询sqlite3数据库。

import sqlite3 as lite

conn = lite.connect('db/posts.db')
cur = conn.cursor()

def get_posts():
    cur.execute("SELECT * FROM Posts")
    print(cur.fetchall())

get_posts()

我已经创建了 Posts 表。当我运行它时,没有出现错误,只打印出 []。我知道表 Posts 不是空的,因为我在 REPL 中创建了它。为什么这个不起作用呢?
非常感谢您的帮助!
2个回答

12

使用上下文管理器,这样您就不必提交!

def get_posts():
    with conn:
        cur.execute("SELECT * FROM Posts")
        print(cur.fetchall())

1
你不需要提交,因为正在执行的语句不会修改数据库。 - spicy.dll

9
原来我只是忘记使用conn.commit()了。希望这能帮助有需要的人。

2
实际上,如果数据没有被修改,为什么需要添加“commit”呢?这是SQLite的特性吗? - Arjen P. De Vries
1
我有一个完全不相关的问题,我的东西没有写入数据库,所以我来看如何打印它,答案是我没有提交,这节省了我大量的时间,谢谢! - Hercislife

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接