BBS04--文章后台管理、富文本编辑器、修改用户头像、bbs项目总结
作者:互联网
1 后台管理
# 后台管理
针对文章的 增删改
# 当一个文件夹下文件比较多的时候 你还可以继续创建文件夹分类处理
templates文件夹
-backend文件夹
-add_article.html
-backend.html
-edit_article.html
-应用1文件夹
-应用2文件夹
# 前端使用 模板过滤器时,需要注意 models中 日期的格式 是怎么样的 需要一一对应
例如:这次傻逼, models中 Article的create_time 是 date类型,而前段过滤器 我却用 "Y-m-d H:i:s"
若是 datetime类型的话,注意是否能用 "Y-m-d H:i:s",
不行则
如果value是一个datetime对象,比如datetime.datetime.now(),输出将是字符串'Wed 09 Jan 2008'
可以将date与time过滤器结合使用,以呈现datetime值的完整表示形式。 例如:
{{ value|date:"D d M Y" }} {{ value|time:"H:i" }}
1.1 添加文章
# 有两个需要注意的问题
1.文章的简介
不能直接切去
应该先想办法获取到当前页面的文本内容之后截取150个文本字符
2.XSS攻击
针对支持用户直接编写html代码的网址,
用户直接书写的script标签 我们需要处理
1.注释或清空 标签内部的内容
2.或直接将script删除
# 如何解决XSS攻击?
我们自己解决的话
针对问题1 后端将字符串内容通过正则表达式筛选 摘要内容
针对问题2 首先需要确定及获取script标签,再讲script标签进行处理
这两步都好烦 有木有人来帮我一下
beautifulsoup模块 bs4模块
专门用来帮你处理html页面内的
该模块主要用于爬虫程序
下载千万不要下错了
pip3 install beautifulsoup4
# 模块使用
soup = BeautifulSoup(content,'html.parser')
tags = soup.find_all()
# 获取所有的标签
for tag in tags:
# print(tag.name) # 获取页面所有的标签
# 针对script标签 直接删除
if tag.name == 'script':
# 删除标签
tag.decompose()
# 文章简介
# 1 简单暴力的直接切去content 150个字符
# desc = content[0:150]
# 2 截取文本150个
desc = soup.text[0:150]
# 总结:
当你发现一个数据处理起来不是很方便的时候
可以考虑百度搜搜有没有现成的模块帮你完成相应的功能
1.2 kindeditor富文本编辑器
编辑器的种类有很多,你可以自己去网上搜索
# 简述步骤:
1.下载页面: http://www.kindsoft.net/down.php
2.修改HTML页面
-2.1 在需要显示编辑器的位置添加textarea输入框
<textarea id="editor_id" name="content" style="width:700px;height:300px;">
<strong>HTML内容</strong>
</textarea>
-2.2 在该HTML页面添加以下脚本
<script charset="utf-8" src="/editor/kindeditor.js"></script>
<script charset="utf-8" src="/editor/lang/zh-CN.js"></script>
<script>
KindEditor.ready(function(K) {
window.editor = K.create('#editor_id',{
width:'100%',
height:'500px',
resizeType:1,
uploadJson : '/upload_file/', // 上传图片的后端提交路径
extraFileUploadParams : {
'csrfmiddlewaretoken':'{{ csrf_token }}',
}
});
</script>
# 注意:K.create的参数
1.第一个参数,可用其它CSS选择器获取元素,匹配多个textarea时只在第一个元素上加载编辑器
2.第二个参数,可以对编辑器进行配置,具体参数请参考 编辑器初始化参数
1.3 编辑器上传图片
别人写好了接口 但是接口不是你自己的
你需要手动去修改
# 查看编辑器 官方文档
K.create中,配置项 添加 '文件上传的配置路径' 参数
uploadJson : '/upload_file/', // 上传图片的后端提交路径
# 注意:
在使用别人的框架或者模块的时候 出现了问题不要慌 看看文档可能会有对应的处理方法
2 修改用户头像
@login_required
def set_avatar(request):
if request.method == 'POST':
file_obj = request.FILES.get('avatar')
# models.UserInfo.objects.filter(pk=request.user.pk).update(avatar=file_obj) # 不会再自动加avatar前缀
# 1.自己手动加前缀
# 2.换一种更新方式
user_obj = request.user
user_obj.avatar = file_obj
user_obj.save()
return redirect('/home/')
blog = request.user.blog
username = request.user.username
return render(request,'set_avatar.html',locals())
3 bbs项目总结
"""
在开发任意的web项目的时候 其实到了后期需要写的代码会越来越少
都是用已经写好的url填写到a标签href属性完成跳转即可
"""
主要功能总结
表设计 开发流程(粗燥流程 还可以细化)
注册功能
forms组件使用
头像动态展示
错误信息提示
登陆功能
图片验证码
滑动验证码
首页展示
media配置
主动暴露任意资源接口
个人站点展示
侧边栏展示
侧边栏筛选
侧边栏inclusion_tag
文章详情页
点赞点踩
评论
后台管理
"""
针对bbs需要你掌握每一个功能的书写思路 内部逻辑
之后再去敲代码熟悉 找感觉
"""
标签:文本编辑,--,标签,request,编辑器,html,user,BBS04,avatar 来源: https://www.cnblogs.com/Edmondhui/p/16534855.html