使用内存数据库的 Web.py 待办事项示例

2 投票
1 回答
1027 浏览
提问于 2025-04-17 12:04

首先,我得说我对 web.py 完全是个新手。

我想把这个 待办事项示例 修改一下,让它使用内存中的数据库,而不是用 mysql。

我最后写了:

import web

db = web.database(dbn="sqlite", db=":memory:")

db.query("CREATE TABLE todo (id INT AUTO_INCREMENT, title TEXT);")



def get_todos():

    return db.select('todo', order='id')

def new_todo(text):

    db.insert('todo', title=text)

def del_todo(id):

    db.delete('todo', where="id=$id", vars=locals())

但是当我打开网站时,我看到:

<class 'sqlite3.OperationalError'> at /
no such table: todo

有人知道这是怎么回事吗?

1 个回答

1

我觉得这样设计是行不通的,因为webpy会在每次收到http请求时重新运行整个程序。所以在第二次请求的时候,会创建一个新的数据库,这样在不同的http请求之间就没有数据的持久性了。

撰写回答