我遵循Miguel Grinberg的《Flask Web开发》一书中描述的示例
我在12b(关于追随者的章节)签出,但该应用程序无法持久
改变模型后,它工作了。然而,我不确定这是否是正确的方法
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()
是解决您的问题的一种变通方法,但不是一个好主意最后,route函数中应该存在一个数据库提交。其思想是,在请求期间,所有更改都会在数据库会话中累积,只有在最后,当我们确定请求成功时,才会进行提交,以使所有这些更改永久化
实际上,我录制了一段简短的视频,其中讨论了在每个请求的最后发出一次提交的想法,如果您想了解更多信息,请参见https://www.youtube.com/watch?v=5-4W3m5gRAs
对于您的特定问题,您需要检查
follow()
方法返回后主路由函数中没有提交的原因。在那里添加提交应该可以解决您的问题相关问题 更多 >
编程相关推荐