bbs项目之点赞点踩功能 小疑问点

点赞点踩功能

前端

  1. 录入文章数据,最本质的方式就是录入html文件标签
  2. 取消转义,在前端页面加一个过滤器: |safe
  3. 拷贝的点赞点踩,去掉点击事件,踩赞数换成文章对象中的对应字段
  4. 怎么判断点赞点踩?
    1. 点赞和点踩有不同的类名,添加一个公共类名action
    2. 给action绑定点击事件,然后根据类名区分点赞和点踩
  5. 只要是应用auth模块的用户,在登录成功之后执行auth.login,保存登录状态,这样在任何能够拿到request对象的地方,都可以通过request.user获取到当前登录用户对象
  6. 当前是在 article_detail页面,发送ajax请求,跳转的是专门处理点踩点赞的页面
  7. ajax请求,在后端提前定义一个字典,不管用不用的到,后面可能会定义别的容器类型,定义好之后,有可能会用

后端

  1. 先判断ajax,在判断post,定义字典

  2. 判断是否登录,拿到文章,赞踩字段

    1. 因为拿到的赞或者踩字段是字符串,这里面需要用到json格式转一下

    2. pythonjson 的转换可以通过 json.JSONENCODE进行查看,现在列出

      python json
      dict object
      list,tuple array
      str string
      int,float number
      True true
      False false
      None null
  3. 在拿到踩或者赞之后的逻辑:

    1. 判断当前文章是否是当前用户自己写的
    2. 判断是否点过(踩/赞)了
    3. 操作数据库(文章表,增加数据),变更记录
    4. 操作踩赞表,创建一个记录
    5. 写错误的逻辑,注意提示登录,加一个a标签,跳转到登录界面
    6. 把字典传给ajax的回调函数

评论功能

前端

  1. 拷贝评论样式,加一个textarea评论框样式
  2. 点踩点赞的图片与评论样式在同一行,因为有浮动,需要在div标签中设置clearfix,清除浮动
  3. 只有登录才能进行评论,所以要加一个判断,当用户没有评论时,用2个a标签,分别是登录和注册

后端

和点赞点踩类似,不过加了一个事务,简单的逻辑如下:

  1. 判断请求是不是ajax,是不是post
  2. 加字典,拿到文章id,评论内容
  3. 开启事务,更新文章表,新建评论表中的记录
  4. 更新字典,字典返回前端ajax回调函数

评论楼(跟评论)

前端

  1. 根据博客园的评论楼样式,只需要在article_detail中加div标签,然后包裹若干span标签样式,里面分别存楼数,时间,用户名,回复,外加一个p标签包裹评论内容。
  2. 提交评论,会有一个呈现的页面,DOM操作,临时渲染评论楼样式(主要就是用户名和评论内容,其他的信息不需要)
    1. 动态生成标签
    2. 将生成好的标签 添加到ul标签中

后端

  1. article_detail中获取评论列表,然后返回前端就好了

评论回复(子评论)

前端

  1. 用户点击回复按钮,发生了以下几件事情
    1. 自动获取点击的那一条评论的评论人用户名 @人名
    2. 将拼接好的人名自动放入textarea框中 并且自动换行
    3. textarea框自动聚焦
  2. 在for循环里面,识别标签的话用class,而不能用id,循环的话id相同,就不对了
  3. 点击回复按钮,应该拿到评论人的名字和评论的id(前者用于写在@后面,表示回复的是谁,后者需要根据parent_id判断当前是根评论还是子评论)

后端

  1. 子评论回复的时候,如何取消自带的@人名
    1. 根据之前拼接的形式,找到\n,并按照\n进行切割,把后面的部分存到数据库中。
  2. 当你回复了一个子评论后 如果不刷新页面 后续的评论都会变成子评论
    1. 在提交评论的点击事件中,将commentid置空,这样即使是子评论,赋值完成之后,一会变空。
上一篇:Python实现论坛自动签到


下一篇:个人或小型企业站该如何选择服务器?