Skip to main content
 首页 » 编程设计

python之Web.py 待办事项列表示例,但内存中有数据库

2025年05月04日25jyk

首先我必须说我是 web.py 的新手。

我想修改 todo list example使用内存中的数据库而不是使用 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 

有什么想法吗?

请您参考如下方法:

我认为它不会按设计工作,因为 webpy 为每个 http 请求重新运行所有程序。因此在第二次请求之后,将创建另一个数据库,因此 HTTP 请求之间没有持久性。