python全栈开发day80--评论楼、评论树
内容总结:
1. 内容回顾
1. 内容回顾
1.评论
1. 展示评论
1. 评论楼(Django模板语言渲染)
1. 从后端查询出所有的评论
2. 如果有父评论就展示父评论 2. 评论树
通过ajax在页面刷新的时候去拉取所有的评论 2. 发表评论
1. 发表评论(ajax提交)
1. 通过AJAX发送到后端
1. 判断是否是子评论
1. 给回复按钮绑定点击事件
1. 要给未来的标签绑定事件一定要用事件委托
事件委托利用的原理是事件冒泡
2. jQuery事件委托的写法:
$("已经存在的标签").on("click", ".repaly", function(){})
2. jQuery对象.data()
1. jQuery对象.data("k1", "v1") --> 给jQuery对象保存了一个k1:v1
2. jQuery对象.data("k1") --> 取k1对应的值,取不到返回undefined
3. jQuery对象.removeData("k1") --> 删除k1对应的值
4. jQuery对象.removeData() --> 删除所有键值对
3. JS的三元运算
条件?值1:值2
4. 值1 || 值2 --> 如果值1为真就用值1,否则用值2
5. +"" --> 把字符串快速转换成数值类型的小技巧
6. 字符串的相关用法
1. s.slice(start,) --> 按索引对字符串切片
2. s.indexOf('\n') --> 求指定字符在字符串中的索引
7. 任何标签都可以加自定义属性
jQuery求标签的属性:$("div").attr("k") 2. 后端注意事项:
1. 创建一条新评论
1. 判断是否是子评论,如果是子评论创建评论记录时要传父评论id值 2. 更新对应文章表中的comment_count
.update(comment_count=F("comment_count")+1) 2. 通过DOM操作把评论显示在页面上
1. ES6的模板字符串:https://www.cnblogs.com/liwenzhou/p/9249932.html
`${变量名}`
2. jQuery的文档操作 jQuery中文文档:http://jquery.cuishifeng.cn/
1. 内部添加
1. 前面:prepend
2. 后面:append
2. 外部添加
1. 前面:before
2. 后面:after 2. 文章后台
1. 发布文章
1. kindeditor插件
2. BS4:https://www.crummy.com/software/BeautifulSoup/bs4/doc.zh/
1. 安装:
pip install beautifulsoup4
2. 简单使用
1. from bs4 import BeautifulSoup
# 对一段HTML格式的内容做解析
soup = BeautifulSoup('html内容', 'html.parser')
2. 找标签:
soup.a
3. 找标签的样式:
soup.a["class"]
4. 找特定的标签
soup.select("script")
5. 删除标签
.decompose()
6. 取text文本内容
soup.text
7. 格式化html内容
soup.prettify() 2. 删除文章
3. 修改文章
知识点总结
python全栈开发day80--评论楼、评论树的更多相关文章
- Python全栈开发【面向对象进阶】
Python全栈开发[面向对象进阶] 本节内容: isinstance(obj,cls)和issubclass(sub,super) 反射 __setattr__,__delattr__,__geta ...
- Python全栈开发【面向对象】
Python全栈开发[面向对象] 本节内容: 三大编程范式 面向对象设计与面向对象编程 类和对象 静态属性.类方法.静态方法 类组合 继承 多态 封装 三大编程范式 三大编程范式: 1.面向过程编程 ...
- Python全栈开发【模块】
Python全栈开发[模块] 本节内容: 模块介绍 time random os sys json & picle shelve XML hashlib ConfigParser loggin ...
- Python全栈开发【基础四】
Python全栈开发[基础四] 本节内容: 匿名函数(lambda) 函数式编程(map,filter,reduce) 文件处理 迭代器 三元表达式 列表解析与生成器表达式 生成器 匿名函数 lamb ...
- Python全栈开发【基础三】
Python全栈开发[基础三] 本节内容: 函数(全局与局部变量) 递归 内置函数 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 def 函数名(参数): ... 函数体 . ...
- Python全栈开发【基础二】
Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 其他(编码,range,f ...
- Python全栈开发【基础一】
Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与wh ...
- python 全栈开发之路 day1
python 全栈开发之路 day1 本节内容 计算机发展介绍 计算机硬件组成 计算机基本原理 计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可 ...
- Python全栈开发
Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“ ...
随机推荐
- ansible配合shell脚本批量编译安装python3.6.6
[root@node1:/etc]# tree /etc/ansible/ /etc/ansible/ ├── ansible.cfg ├── hosts ├── python.yml └── rol ...
- 解决tomcat报错javax.imageio.IIOException: Can't create output stream!
启动tomcat catalina.out报错如下,登陆的时候无法显示验证码 2017-06-09 11:23:06,628 DEBUG org.springframework.web.servlet ...
- [C]va_list可变长参数的使用
一.概述 运用标准C的头文件stdarg.h提供的宏可以实现函数的自定义传参个数: 二.语法 1.va_list是一个可变长参数类型,在使用可变长参数的函数中可以定义1个或多个va_list类型参数, ...
- [HTTP]Etag的工作流程
1. 浏览器首次访问该资源时,web服务器返回资源的同时,响应报文头携带ETag标签: 2. 浏览器将保存该Etag标签的值: 3. 当浏览器发起下一次请求,请求报文头将会携带 If-None-Mat ...
- ACM-ICPC 2018 焦作赛区网络预赛 I Save the Room
Bob is a sorcerer. He lives in a cuboid room which has a length of AAA, a width of BBB and a height ...
- nginx 配置白名单
在http 模块 增加 geo $remote_addr $ip_whitelist{ default 0; include white_ip.conf; } 在location 模块 增加 (注意i ...
- easyui combogrid下拉表格的分页/按键/动态搜索
作者:xfl4629712 < easyui combogrid下拉表格的分页/按键/动态搜索 > 需求: 1.下拉框下拉时出现表格: 2.表格带分页功能: 3.可以使用向上键.向下 ...
- Confluence 6 其他需要备份和恢复的地方
XML 备份被描述用于在 Confluence 备份使用的其他方法,例如升级和移动服务器.使用上面描述的备份和恢复方法也适用这些地方. 我们的 upgrade guide 不要求使用一个 XML 备份 ...
- 如何修改PDF文件内容,PDF怎么添加背景
很多的情况下,大家都会遇到PDF文件,不管是在学习中还是在工作中,对于PDF文件,文件的修改编辑是需要用到PDF编辑软件的,在编辑文件的时候,发现文件的页面是有背景颜色的,又该如何修改背景颜色呢,不会 ...
- 兼容IE浏览器样式的html上传文件控件
最近在公司做项目时需要用到html的上传文件控件,但发现原生的上传文件控件<input type="file" />在IE.Chrome浏览器的显示效果相差很大,为了统 ...