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号