django项目中使用KindEditor富文本编辑器。
先从官网下载插件,放在static文件下
前端引入
<script type="text/javascript" src="/static/back/kindeditor/kindeditor-all.js"></script> <script>
KindEditor.ready(function (K) { window.editor = K.create('#content', {
{# 加上这句话可以使jquery能获取到富文本编辑器的内容#}
afterBlur: function(){this.sync();},
width: "",
height: "",
resizeType: 0,
uploadJson: "/back/article/upload/",
extraFileUploadParams: {
csrfmiddlewaretoken: "{{ csrf_token }}"
},
filePostName: "upload_img"//上传图片的名称
});
});
</script>
定义富文本编辑器在页面中的位置
<textarea id="content" name="content" style="width:700px;height:250px;"></textarea>
ajax提交
#提交按钮
<input name="dosubmit" type="button" id="dosubmit" class="btn" value="马上发布"> # 提交富文本编辑器的内容
<script>
{# 提交文章#}
$('#dosubmit').click(function () {
$.post('/back/article/back_add/',$('form').serialize(),function (data) {
if (data['status']==0){
layer.msg(data['info'])
{#location.href="/back/index/index/"#}
}else{
layer.msg(data['info'])
}
},'json')
})
</script>
路由
# 富文本编辑器
re_path('article/upload/', article.upload, name='article/upload/'),
# 接受form表单内容添加文章
re_path('article/add/', article.add, name='article/add/'),
后台接收图片方法
#富文本编辑器里上传图片
import os
def upload(request):
"""
编辑器上传文件接受视图函数
:param request:
:return:
"""
# 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)
response={
"error":0,
"url":"/media/add_article_img/%s"%img_obj.name
}
return HttpResponse(json.dumps(response))
后台接收内容方法
def add(request):
member_obj=Member.objects.all()
member_id = request.session.get('member_id')
member_name=request.session.get('member_name')
if request.method == 'POST':
title = request.POST.get("title")
description = request.POST.get('description')
content = request.POST.get("content")
addtime=time.strftime('%Y-%m-%d',time.localtime())
# 防止xss攻击,过滤script标签
soup=BeautifulSoup(content,"html.parser")#通过字符串创建BeautifulSoup对象,即将字符串转为对象,然后调用对象里的相关方法
print(soup.find_all())#[<img alt="" src="/media/add_article_img/hand.png"/>, <script charset="utf-8" src="/static/blog/kindeditor/kindeditor-all.js"></script>,<img src="/media/add_article_img/thumb_50_img1.jpg" alt="" />]
for tag in soup.find_all(): print(tag.name)#img script
if tag.name=="script":
tag.decompose()
# # 构建摘要数据,获取标签字符串的文本前150个符号
desc = soup.text[0:150] + "..."
obj=Article.objects.create(article_title=title,article_description=desc,article_content=str(content),member_id=member_id,article_addtime=str(addtime).replace('/','-'))
if obj:
return redirect('/back/article/add/')
return render(request,'article/add.html',locals())
页面效果

done。
django项目中使用KindEditor富文本编辑器。的更多相关文章
- django项目中使用KindEditor富文本编辑器
先从官网下载插件,放在static文件下 前端引入 <script type="text/javascript" src="/static/back/kindedi ...
- django的admin或者应用中使用KindEditor富文本编辑器
由于django后台管理没有富文本编辑器,看着好丑,展示出来的页面不美观,无法做到所见即所得的编辑方式,所以我们需要引入第三方富文本编辑器. 之前找了好多文档已经博客才把这个功能做出来,有些博客虽然写 ...
- vue2.0项目中使用Ueditor富文本编辑器示例
最近在vue项目中需要使用富文本编辑器,于是将Ueditor集成进来,作为公共组件. 在线预览:https://suweiteng.github.io/vue2-management-platform ...
- springboot中使用kindeditor富文本编辑器实现博客功能
kindeditor在之前已经用过,现在在springboot项目中使用.并且也在里面使用了图片上传以及回显等功能. 其实主要的功能是图片的处理:kindeditor对输入的内容会作为html标签处理 ...
- 在 Vue 项目中引入 tinymce 富文本编辑器
项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项 ...
- 在java项目中加入百度富文本编辑器
富文本编辑器在项目中很常见,他可以将文本,图片等信息存入数据库,在编辑一些图文混排的信息的时候很有用,比如商城项目的商品详情页,包含很多带有样式的文字和图片. 此前一直使用的百度的富文本编辑器uedi ...
- WEB项目中使用UEditor(富文本编辑器)
Ueditor富文本编辑器是在很多项目里经常用到的框架,是百度开发团队开发的一款很好用的富文本编辑器 下面就是我在一个系统里用到的,有了富文本编辑器,管理员使用起来不是很方便? 所以本博客介绍这个富文 ...
- 在ASP.NET中使用KindEditor富文本编辑器
以前一直用百度的UEditor.这次客户提了一个需求要在编辑器中插入Flash动画,但是不知道怎么用UEditor实现,于是选用了KindEditor. 更重要的一点是,客户的网站使用Framewor ...
- vue2.0项目中使用Ueditor富文本编辑器应用中出现的问题
1.如何设置config中的内容 readonly:true,//只读模式wordCount:false,//是否开启字数统计enableAutoSave: false,//自动保存功能 重点:ena ...
随机推荐
- MySQL 执行插入报错 - Incorrect string value: '\xE4\xB8\xAD\xE6\x96\x87' for column 'name' at row 1
报错的原因就是在执行插入时对Name这个字段被赋予了错误的字符串值:’\xE4\xB8\xAD\xE6\x96\x87’ 实际上就函数里面的变量接收到的值编码格式跟它定义的不一致. 使用navica ...
- 怎么删除iOS模拟器上的应用程序?
怎么删除iOS模拟器上的应用程序: 和手机上一样,鼠标长按,点击删除 xcode 卸载模拟器 Simulator:删除目录/Library/Developer/CoreSimulator/Profil ...
- ssh密码登录+ Google Authenticator 实现双向认证
通常我们直接通过ssh输入密码连接服务器,但这样很容易出现暴力破解情况,所以我们可以结合google的动态认证+ssh密码,这样能够大大的提升登陆的安全. 简单来说,就是当用户通过ssh登陆系统时,先 ...
- Cmder下ssh免密登录配置
1.本地生成ssh-key 在本地cmder终端下运行下面的命令生成ssh的公钥和私钥文件: ssh-keygen -t rsa 其中,.ssh/id_rsa为私钥文件,留在本地使用,而.ssh/id ...
- Java 并发-Unsafe 相关整理
https://www.jianshu.com/p/2e5b92d0962e 1. Unsafe 类 Java 不能直接访问操作系统底层,而是通过本地方法来访问.Unsafe 类提供了硬件级别的原子操 ...
- golang socket与Linux socket比较分析
在posix标准推出后,socket在各大主流OS平台上都得到了很好的支持.而Golang是自带runtime的跨平台编程语言,Go中提供给开发者的socket API是建立在操作系统原生socket ...
- jboss/wildfly安全域的密码加密和解密
加密: java_path=$(source /opt/wildfly/bin/.Beta1.jar:/opt/wildfly/modules/system/layers/base/org/jboss ...
- Python实现Newton和lagrange插值
一.介绍Newton和lagrange插值:给出一组数据进行Newton和lagrange插值,同时将结果用plot呈现出来1.首先是Lagrange插值:根据插值的方法,先对每次的结果求积,在对结果 ...
- Oracle查询所有字段另加两个拼接字段的操作
Oracle查询所有字段,再加两个字段拼接, select a.*,(SNO||SNAME) from TEST_STUDENT a; 同理,查询所有字段,其中两个字段求和:(SNO和SAGE都是NU ...
- latex在vim中的代码片段
Gilles Castel写的vim中使用的代码片段,质量很高,原文:https://github.com/gillescastel 下载后,存放到 ~/.vim/plugged/ultisnips/ ...