参考教程:https://blog.csdn.net/weixin_42126327/article/details/81735659
我们提及一下重点:
1.
我们在/index首页中显示所有的当前登陆用户的信息就需要一个关键的函数:
def followed_posts(self):
followed=Post.query.join(followers,(followers.c.followed_id==Post.user_id)).filter(
followers.c.followed_id==self.id)#所有被关注者的信息(POST)
own = Post.query.filter_by(user_id=self.id)#然后筛选我们需要寻找的被关注者的信息
return followed.union(own).order_by(Post.timestamp.desc())#union是对两个解集进行合并
所以我们就可以这样来获取当前用户的所有Post信息:
posts = current_user.followed_posts().all()
2.Flask-SQLAlchemy的paginate()
方法原生就支持分页,具体还是看参考教程,写的很详细
3.
还记得我曾提到过paginate()
的返回是Pagination
类的实例吗? 到目前为止,我已经使用了此对象的items
属性,其中包含为所选页面检索的用户动态列表。 但是这个分页对象还有一些其他的属性在构建分页链接时很有用:
has_next
: 当前页之后存在后续页面时为真has_prev
: 当前页之前存在前置页面时为真next_num
: 下一页的页码prev_num
: 上一页的页码