web2py-sqlite3->&引用_懒惰的“桌子”;错误
我尝试在def中创建此数据库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
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()
——提交是在请求结束时自动完成的