Flask用户登陆系统(四)----分页显示

参考教程: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: 上一页的页码

猜你喜欢

转载自blog.csdn.net/scwMason/article/details/87483330