Python数据库会话(元会话)

2024-10-04 15:27:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我有大量的代码在编辑一个数据库,但我想做的是将所有需要编辑或添加到会话中的数据加载到一个会话中,返回一个网页,一旦用户查看了数据,然后提交到数据库。像这样:

def index(self):
    empsTbl = meta.Session.query(model.Person).all();
    newEmp = model.Person()
    newEmp.userid = row[0].strip()
    meta.Session.add(newEmp)
    return render("/update.html")

def commitSession(self):
    meta.Session.commit()

如果我尝试按一个网页按钮来调用commitSessiondef,那么会话似乎是空的。我在模型上试过一些东西,比如:

^{pr2}$

我也改变了基本控制器。我删除了代码:

meta.Session.remove()

这样它就不会在每次调用后删除会话。在

我还尝试使用合并,以查看是否可以将会话存储在持久数据库会话中:

meta.Session.merge(newEmp)

但我似乎还是不能让它发挥作用。在

编辑:

如果有人能给出最好的pickle Python会话方法的建议,那将是非常有帮助的


Tags: 数据代码用户self数据库编辑网页index
1条回答
网友
1楼 · 发布于 2024-10-04 15:27:41

我希望不是这样,但似乎你还不了解你的web应用程序的生命周期。 在你的例子中,你有2个生命周期,因为你有2个动作。2个请求/响应场景。你必须明白,你在一个行动中所做的(大部分)事情,都会留在那里。 操作“index”的数据库会话与“commitSession”中的会话是另一个,因此,“commitSession”中的会话是空的。为什么?因为你只需要提交一个新创建的会话。在

你要做的是找到一个有效的方法,让你和你的事业把信息从行动“索引”传递到行动“承诺”。最常用的方法是序列化信息,将其放入您的websession中,在“commitSession”操作中将其反序列化,将其写入数据库并使您在websession中的信息失效。 或者你把“索引”中的所有信息放在一些隐藏的字段中,然后再贴在“佣金”上。在

相关问题 更多 >

    热门问题