js+mysql实现论坛回复功能_django框架之BBS项目之评论功能

内容回顾

1. BBS项目 CMS

1. 登录

1. form组件

2. auth模块

3. 验证码

2. 注册

1. form组件

1. 生成html代码

直接for循环form_obj,就能够遍历所有字段

2. 验证

1. 默认的那些验证

2. 正则的验证

3. 全局钩子做确认密码的验证

4. 判断用户名是否已经存在

1. input框失去焦点就发ajax到后端判断

2. form组件中使用局部钩子来判断

2. auth模块 --> 扩展auth_user表 --> create_user()

1. UserInfo这个类里面,avatar是一个FileField

avatar = models.FileField(upload_to="avatars/", default="avatars/default.png")

2. 注意事项:

1. FileField保存的是一个路径,而不是一个文件

2. upload_to:具体保存的文件路径就会在media目录下

3. 上传头像

1. ajax如何上传文件

2. Django中media的配置

1. settings.py中:

- MEDIA_URL:别名

- MEDIA_ROOT:给用户上传的所有文件指定一个存放目录

2. urls.py中:

from django.views.static import serve

from django.conf import settings

url(r'^media/(?P.*)', serve, {"document_root": settings.MEDIA_ROOT})

3. 博客首页

1. 文章列表(排样式)

2. 分页

1. 封装的要彻底

2. 封装后的结果要有普适性(url要写成配置项)

4. 个人博客主页

1. 分类

1. 文章分类

2. 文章标签

2. 日期归档

1. 日期格式化函数    --> MySQL内置的函数都有哪一些?      --> 《漫画数据库》

1. MySQL:DATE_FORMAT('字段', '格式')

2. sqlite:strftime('格式', '字段')

2. ORM中如何执行原生的SQL语句

1. 使用extra()在执行ORM查询的同时,嵌入一些SQL语句

2. 直接执行原生SQL语句

from django.db import connection

cursor = connection.cursor()

cursor.execute('select id from userinfo;')

cursor.fetchall()

3. 分组聚合

QuertySet.annotate()  --> 分组,前面查的是什么字段就按什么字段分组

QuertySet.aggregate() --> 聚合,给QuerySet中的每个对象多一个属性

4. 4合1路由

不同的路由可以使用同一个视图函数!!! --> 视图函数中通过参数的不同,实现不同的功能

5. 文章详情页

1. 母板继承

2. inclusion_tag

1. 返回一段HTML代码,用数据填充的HTML代码

2. 具体的写法

1. 在app下面创建一个名为 templatetags 的 Python Package

2. 在上面的包中创建一个 py文件

3. 按照inclusion_tag的格式要求写功能函数

from django import template

register = template.Library()

@register.inclusion_tag(file='xx.html')

def show_menu(*arg):

...

return {"k1": "v1"}

(xx.html中使用k1这个变量)

3. 点赞

1. ajax发送点赞的请求

1. 点赞必须是登录用户,没登录跳转到登录页面

2. 不能给自己的文章点赞

3. 一个用户只能给一篇文章点一次赞或踩一次

2. 后端创建点赞记录(事务操作)

1. 创建新的点赞记录

2. 去对应的文章表里把点赞数更新一个

3. ORM事务操作

from django.db import transaction

with transaction.atomic():

sql1;

sql2;

4. Django模板语言里面的JS代码

如何在js中引用模板语言的变量,注意加引号!!!

接下来就开始写评论区的功能了,首先就是在页面布局:

我们希望吧页面布局成这个样式:

3e982b6d518574bcaeaede4cc0735e97.png

在bootstrap找到样式之后,作相应的改动:我们先想一下,在这个区域需要哪些数据,首先就是评论发

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值