ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

BBS04--文章后台管理、富文本编辑器、修改用户头像、bbs项目总结

2022-07-30 14:00:41  阅读:140  来源: 互联网

标签:文本编辑 -- 标签 request 编辑器 html user BBS04 avatar


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;">
       &lt;strong&gt;HTML内容&lt;/strong&gt;
    </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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有