Django 中使用 富文本编辑器 KindEditor

首先下载KindEditor,官网 http://kindeditor.net/,目前看已经很少有更新了,不过主要是通过JS实现,目前看影响不大。

默认情况下KindEditor是没有直接用于Django的插件,所以需要我们简单的进行配置;

1、将解压后的文件,放到项目目录/static/ 下 

html

<script src="/static/jquery-3.3.1.js"></script>
<script charset="utf-8" src="/static/kindeditor/kindeditor-all.js"></script>
    <script>
        KindEditor.ready(function (K) {
            window.editor = K.create('#id_content', {
                width: '100%',
                height: '450px',
                //items的作用
                resizeType:0,
                //上传文件的路径
                uploadJson:'/add_img/',
                //额外添加参数
                /*
                extraFileUploadParams : {
                        csrfmiddlewaretoken: "{{ csrf_token }}",
                }
                */
            });
        });
</script>

views

def add_article(request):
    if request.method == 'GET':
        return render(request, 'backends/addarticle.html')
    else:
        title = request.POST.get('title')
        content = request.POST.get('content')
        # 处理xss攻击和取出150个文本字符
        # 第一个参数:要解析的html的内容,第二个参数,是解析的方式
        # soup=BeautifulSoup(content,'lxml')
        soup = BeautifulSoup(content, 'html.parser')
        # 提取所有的文字内容
        # print(soup.text)
        # 处理xss攻击(把content中的script标签删除)
        # tags 是所有的标签
        tags = soup.find_all()
        for tag in tags:
            # tag是一个标签对象
            # tag.name取到标签的名字
            # print(tag.name)
            # 取出script标签,删除
            if tag.name == 'script':
                # 删除该标签
                # print(1111111111111111111111111)
                tag.decompose()
        # 截取150个字符,
        desc = soup.text[0:150]
        ret = models.Article.objects.create(title=title, desc=desc, content=str(soup), blog=request.user.blog)
        return redirect('/backend/')

url

url(r'^add_article/$', views.add_article),

 

posted @ 2019-05-27 20:03  萤huo虫  阅读(137)  评论(0编辑  收藏  举报