8.后台管理
后台管理
1.后台管理页面之首页
2.后台管理页面之文章添加页
1.首页

base.html
1.引入backend.css
2.整体构造
	1.头部,2.左边面板,3.中间标签页
backend.html
1.继承base.html文件
2.重写 content的block如上图4
urls.py
 re_path("cn_backend/$", views.cn_backend),
view.py
def cn_backend(request):
    """获取后台客户端首页界面"""
    article_list = models.Article.objects.filter(user=request.user)
    return render(request, "backend/backend.html", {"article_list": article_list})
2.文章添加页

1.add_article.html
1.补充block为content的内容
2.引入KindEditor编辑器(添加上传参数extraFileUploadParams,filePostName,extraFileUploadParams)
2.urls.py
re_path("cn_backend/$", views.cn_backend),
re_path("cn_backend/add_article/$", views.add_article),
2.view.py
def upload(request):
    """编辑器上传文件接受视图函数"""
    print(request.FILES)
    img_obj = request.FILES.get("upload_img")
    print(img_obj.name)
    path = os.path.join(settings.MEDIA_ROOT, "add_article_img", img_obj.name)
    with open(path, "wb") as f:
        for line in img_obj:
            f.write(line)
    return HttpResponse("ok")
@login_required
def add_article(request):
    if request.method == "POST":
        title = request.POST.get("title")
        content = request.POST.get("content")
        # 防止xss攻击,过滤script标签
        soup = BeautifulSoup(content, "html.parser")
        for tag in soup.find_all():
            print(tag.name)
            if tag.name == "script":
                tag.decompose()
        # 构建摘要数据,获取标签字符串的文本前150个符号
        desc = soup.text[0:150] + "..."
        models.Article.objects.create(title=title, desc=desc, content=str(soup),
                                      create_time=datetime.datetime.now(), user=request.user)
        return redirect("/cn_backend/")
    return render(request, "backend/add_article.html")
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号