福田附近网站开发公司,广州网络营销公司,重庆电子商务公司排名,东营区住建行业信用平台点赞 点赞的过程#xff1a;数字增加#xff0c;并在后台点赞表记录数据 需要发过去的数据#xff1a;用户id#xff0c;新闻id 用户id从session里获得#xff0c;那新闻id怎么获取呢#xff1f;这想到分页是循环新闻列表来展示内容#xff0c;循环的新闻id可以做为参…点赞 点赞的过程数字增加并在后台点赞表记录数据 需要发过去的数据用户id新闻id 用户id从session里获得那新闻id怎么获取呢这想到分页是循环新闻列表来展示内容循环的新闻id可以做为参数传入事件中在事件里发送ajax请求看前端代码 div classcontent-list idcontent_list{% for item in new_list %}div classitema οnclickFavor(this{{item.nid}})点赞9/a/div{% end %}/div点赞数就在后台根据新闻id去统计对应的客户id数点赞表中 或者在新闻表在加一个字段--点赞数favor_count每次点了赞加个1 没点赞的点了1点了赞的再点-1 代码实现 1、后端render list【新闻1新闻2...】 前端{{% for item in new_list %}} 点赞标签绑定οnclick‘functhis{{item.nid}}’ 2、js后台会返回一个操作编码让前端判断是加1操作还是减1操作 function DoFavor(ths,nid){
//nid 新闻id//只有登录状态才能发送点赞ajax请求//获取特定登陆状态标签的属性值if($(#action_nav).attr(is-login) true){$.ajax({url:/favor,type:POST,data:{news_id:nid},dataType:json,success:function(arg){if(arg.status){//获取新闻点赞数显示标签var $favorCount $(#favor_count_nid);//获取点赞数var c parseInt($favorCount.text());if(arg.code 2301){//更新显示$favorCount.text(c1);//给点赞图像加上活动状态$(ths).find(span).addClass(active);//加动态效果AddFavorAnimation(ths);}else if(arg.code 2302){//更新显示$favorCount.text(c-1);//给点赞图像去除活动状态$(ths).find(span).removeClass(active);//动画效果}}}})}
}3、后台判断处理 class FavorHandler(BaseRequestHandler):#装饰器主要做了一件---对用户登陆状态进行验证如果没登录就不会执行post方法decrator.auth_login_jsondef psot(self,*args,**kwargs):#这对象相当于以前的字典用封装错误信息数据状态rep BaseResponse()news_id self.get_argument(news_id,None)if not news_id:rep.summary 新闻ID不能为空else:user_info_id self.session[user_info][nid]#创建链接conn ORM.session#去数据库看看有没有已经点赞has_favor conn.query(ORM.Favor).filter(ORM.Favor.user_info_id user_info_id,ORM.Favor.news_id new_id).count()#如果已赞再点就是取消赞if has_favor:#取消赞就去点赞表里把那条数据删除conn.query(ORM.Favor).filter(ORM.Favor.user_inro_id user_info_id,ORM.Favor.news_id news_id).delete()#并在新闻表里修改点赞数-1conn.query(ORM.News).filter(ORM.News.nid news_id).update({favor_count:ORM.News.favor_count - 1},synchronize_sessionevaluate)#设置编码rep.code StatusCodeEnum.FavorMinus#如果没赞加赞else:#给点赞表增加数据conn.add(ORM.Favor(user_info_iduser_info_id,news_idnews_id,ctimedatetime.datetime.now))#给新闻表的点赞跟新1conn.query(ORM.News).filter(ORM.News.nid news_id).update({favor_count:ORM.News.favor_count 1},synchronize_sessionevaluate) rep.code StatusCodeEnum.FavorPlusconn.commit()conn.close()rep.status Trueself.write(json.dumps(rep.__dict__))4、配置编码 FavorPlus 2301
FavorMinus 2302class BaseRespinse:def __init__(self):self.status Falseself.code StatusCodeEnum.Successself.data Noneself.summary Noneself.message {}评论树 评论树默认不展开点击后展开displayNone刚开始看到的新闻是没有评论数据的只有点击了后才有本质上就偷偷发了请求给后台然后把评论数据返回显示在页面上转载于:https://www.cnblogs.com/xinsiwei18/p/5869717.html