gpt4 book ai didi

python - session 未提交 - checkout 12b - Flask Web 开发

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:50 25 4
gpt4 key购买 nike

我正在遵循 Miguel Grinberg 所著的 Flask Web Development 一书中描述的示例。

我在 12b(有关关注者的章节) checkout ,但该应用程序没有持续存在。

更改模型后,它起作用了。但是,我不确定这是否是正确的方法。

class User(UserMixin, db.Model):
#...
def follow(self, user):
if not self.is_following(user):
f = Follow(follower=self, followed=user)
db.session.add(f)

添加后: db.session.commit() 它起作用了,但是,我可能会丢失一些东西,因为这是迄今为止我遇到的第一个“错误”。

最佳答案

不,在 follow() 方法中添加 db.session.commit() 可以解决您的问题,但不是一个好主意。

数据库提交应该存在于路由函数的最后。这个想法是,在请求期间,所有更改都会累积在数据库 session 中,并且只有在最后,当我们确定请求成功时,才会进行提交以使所有这些更改永久化。

我实际上录制了一个简短的视频,其中包括对在每个请求的最后发出单个提交的想法的讨论,因此如果您想了解更多信息,请参阅 https://www.youtube.com/watch?v=5-4W3m5gRAs .

对于您的特定问题,您需要检查为什么在 follow() 方法返回后主路由函数中没有提交。在那里添加提交应该可以解决您的问题。

关于python - session 未提交 - checkout 12b - Flask Web 开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57574533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com