问题描述
|
我是webdev的新手,现在计划用web2py编写boradgame。
开始编码时,我发现我不能轻易使用全局变量。
出于演示目的,我希望许多玩家访问python列表对象,我使用sqlite使其工作。
数据库(使用
DAL(\'sqlite:memory:\')
将不起作用),因此我尝试了文件方式,它按我的想法工作:
memdb = DAL(\'sqlite://storage.sqlite\')
memdb.define_table(\'room\',Field(\'card_on_desk\',\'blob\'))
创建一个房间:
roomid = memdb.room.insert(card_on_desk=pickle.dumps(list()))
memdb.commit()
更改房间的card_on_desk字段:
record = memdb.room(roomid)
cards = pickle.loads(record.card_on_desk)
cards.append(\',\'.join(c))
memdb(memdb.room.id==roomid).update(card_on_desk=pickle.dumps(cards))
memdb.commit()
一些专家说,有一种cache.ram()方式,我想知道如何做上述事情。
等待你的答案。
S.Lott提到我没有描述使用DAL(\'sqlite:memory:\')时会发生什么:
使用sqlite:memory
代替\'sqlite://storage.sqlite \',在http请求中可以正常使用memdb插入,但是不会保存任何内容,每次您调用memdb.room.insert()
都会返回我调用的时间,当请求完成时,将不保存任何内容内存,memdb.room(1)始终返回None。
安东尼的建议会更有用,我会尝试使用这种方式,有点困难。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)