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),