web2py-sqlite3->&引用_懒惰的“桌子”;错误

web2py-sqlite3->&引用_懒惰的“桌子”;错误,sqlite,web2py,Sqlite,Web2py,我尝试在def中创建此数据库 database = DAL('sqlite://userhistory3.db') database.define_table('userjob', Field('UserID'),Field('JobID')) session.database=database 但是当我尝试在另一个def中插入值时 sd=session.database sd.userjob.insert(UserID=auth.user_id,JobID=job_Id) data

我尝试在def中创建此数据库

database = DAL('sqlite://userhistory3.db')
database.define_table('userjob', Field('UserID'),Field('JobID'))
session.database=database
但是当我尝试在另一个def中插入值时

sd=session.database     
sd.userjob.insert(UserID=auth.user_id,JobID=job_Id)
database.commit()

我发现错误“DAL”对象没有属性“lazy\u tables”。我该怎么办?

当您从会话中检索
DAL
(数据库连接)对象时,仅当您首先使用相同的连接字符串重新连接时,它才会起作用,如下所示:

database = DAL('sqlite://userhistory3.db')
sd=session.database
但是检索到的连接没有任何表定义,因此它对您的目的没有用处

通常,您不需要在会话中存储
DAL
对象。只需将
DAL
创建和表定义放在一个模型文件中,它就可以用于所有请求——无需继续保存和从会话中检索

此外,没有理由在应用程序代码中调用
db.commit()
——提交是在请求结束时自动完成的