用户关注列表(难点)
-
原型效果图
-
需求分析:
- 内容:互相关注和已关注
- 举例:当前用户:curry 关注列表:kobe,james 粉丝列表:durant,Kobe
-
思路分析:
- 数据库表分析
- 查询用户关注列表获得fans对象,再通过fa获取author_id
- 查询用户粉丝列表得到author对象,在通过author获取fans_id
- 遍历(嵌套)两个列表,用户的id是否相等判断时互相关注还是已关注
-
接口实现
usr_id = g.user_id
page
per_age
发布主评论
- 原型效果
- 接口设计
- 请求参数:user_id:当前用户id
- article_id:文章id
- content:评论内容
- 区分主子评论
- parent_id == 0 :主评论
- parent_id != 0:子评论
from flask_restful import Resourceclass CommentResource(Resource):"""发布评论接口类视图 [主+子评论]"""user_id = g.user_idparser = ResquestParser()parser.add_argument("article_id", type=int, required=True, location='json')parser.add_argumemt("content", type= regex(r'.+'), required=True, location='json')ret = parser.parse_args()comment_content = ret["content"]comment_obj = Coment(user_id=user_id,article_id=article_id,content=comment_content,parent_id=0)db.session.add(comment_obj)Article.query.filter(Article.id == article_id).update({"comment_count": Article.comment_count + 1})try:db.session.commit()expect Exception as e:db.session.rollback()return {"message": "发布主评论数据库异常:{}".format(e)}, 507return {"comment_id": comment_obj.id,"article_id": article_id,"message": "发布评论成功"}
查询主评论列表
-
产品原型图:
-
需求分析:
-
思路分析:
-
接口设计:
- 参数:article_id ,offset :评论的偏移id值, limit:限定查询的条数
parser = RequestParser()
parser.add_argument("article_id", type=int,required=True, location="args")
parser.add_argument("offset", type=int,required=True, location="args")
parser.add_argument("limit", type=int,defaulst=10, location="args")
ret = parser.parse_args()
article-id = ret["article_id"]
offset = ret["offset"]
limit = ret["limit"]
comment_list = db.session.query(Comment.id,Comment.user_id = user_id,Comment.like_count,Comment.content,Comment.ctime,Comment.reply_count,User.name,user.profile_photo).join(User, Comment_id == User.id).filter(Comment.article_id == article_id,Comment_id > offset,Comment.parent_id == 0).limit(limit).all()
comment_list[-1].id if comment_list else 0
comment_count = Comment.query.filter(Comment.article_id == article_id == article, Comment == parent_id ==0).count()
end_comment = Comment.query.filter(Comment.article_id == article_id,Comment.parent_id == 0).order_by(Comment.id.desc()).first()comment_dict_list = [{}for comment in comment_list]
return {"commets": comment_dict_list,"last_id": }