从两个Python文件访问SQLite数据库

-1 投票
1 回答
931 浏览
提问于 2025-04-18 08:07

我一直在尝试用一个Python文件创建一个sqlite数据库,然后用另一个文件来访问里面的数据,但总是出错。我有两个文件,分别是main.py和file2.py。

这是main.py里的代码:

import sqlite3, os
conn = sqlite3.connect(':memory:')
queryCurs = conn.cursor()

def createTable():
    queryCurs.execute('''CREATE TABLE test(id INTEGER PRIMARY KEY, name TEXT)''')

def addInitial(name):
    queryCurs.execute('''INSERT INTO test(name) VALUES (?)''',(name,))

createTable()
    addInitial("John")

conn.commit()

os.system('file2.py')

这是file2.py里的代码:

    import sqlite3, os, time
    conn = sqlite3.connect(':memory:')
    queryCurs = conn.cursor()

    queryCurs.execute('SELECT name FROM test WHERE id=1')
    for i in queryCurs:
        for j in i:
            name = j
            print name

    conn.commit()

我收到的错误信息是:OperationalError: no such table: test(没有这个表:test)。

1 个回答

0

每次调用 connect 都会创建一个自己的内存数据库。

如果想要共享同一个内存数据库,就需要创建一个连接,并在两个模块中共享这个 Python 对象。

撰写回答