django-kindeditor编辑器

你。 提交于 2020-03-23 12:07:30

一:kindeditor是HTML的一款编辑器插件.

1,下载地址::    KindEditor 4.1.11 (2016-03-31)

2,修改html页面的具体的操作:

1,在需要显示编辑器的位置添加textarea输入框
<textarea id="editor_id" name="content" style="width:700px;height:300px;">  #这里的id值是唯一的,但是也可以变,只要后面用到id值的地方都一样即可.
</textarea>
注意:
    id在当前页面必须是唯一的值。
    在textarea里设置HTML内容即可实现编辑,在这里需要注意的是,如果从服务器端程序(ASP、PHP、ASP.NET等)直接显示内容,则必须转换HTML特殊字符(>,<,&,”)。  具体请参考各语言目录下面的demo.xxx程序,目前支持ASP、ASP.NET、PHP、JSP。    在有些浏览器上不设宽度和高度可能显示有问题,所以最好设一下宽度和高度。宽度和高度可用inline样式设置,也可用 编辑器初始化参数 设置。

 

2,在该HTML页面添加以下脚本
<script charset="utf-8" src="/editor/kindeditor.js"></script>   #这里的两行视情况而定.<script charset="utf-8" src="/editor/lang/zh-CN.js"></script>  #如果报错可把这两行去掉<script>
        KindEditor.ready(function(K) {
                window.editor = K.create('#editor_id');    #这里面还可以加上相应的值拓展属性,具体可以看初始化属性
        });
</script>

 

3,获取textarea里面的html值
// 取得HTML内容
html = editor.html();

// 同步数据后可以直接取得textarea的value
editor.sync();
html = document.getElementById('editor_id').value; // 原生API
html = K('#editor_id').val(); // KindEditor Node API
html = $('#editor_id').val(); // jQuery

// 设置HTML内容
editor.html('HTML内容');

Note

  • KindEditor的可视化操作在新创建的iframe上执行,代码模式下的textarea框也是新创建的,所以最后提交前需要执行 sync() 将HTML数据设置到原来的textarea。
  • KindEditor在默认情况下自动寻找textarea所属的form元素,找到form后onsubmit事件里添加sync函数,所以用form方式提交数据,不需要手动执行sync()函数。
  • KindEditor默认采用白名单过滤方式,可用 htmlTags 参数定义要保留的标签和属性。当然也可以用 filterMode 参数关闭过滤模式,保留所有标签。
// 关闭过滤模式,保留所有标签
KindEditor.options.filterMode = false;

KindEditor.ready(function(K)) {
        K.create('#editor_id');
}

 3,操作img图片:

在html里面先写好html代码:

例:
KindEditor.ready(function(K) {    //这段代码是处理img以及byte类型代码
                window.editor = K.create('#editor_id',{
                    resizeType:0,   //设置该textarea能不能变化
                    uploadJson:"/blog/uploadFile/",   //下载byte类型用一个单独的路径运行
                    extraFileUploadParams:{
                           csrfmiddlewaretoken:$("[name='csrfmiddlewaretoken']").val(),
                       }  //加上这个字段传文件过去,可以和图片一起传过去.
                });
        })


处理图片我们给他一个单独的路径,和视图函数处理他.后面的extraFileUploadParams字段,是为了配合POST请求的forbidden,一起传过去的.

 

在views视图函数里

def uploadFile(request):
    print(request.file)  #可以查看file的文件格式,并且查看到键值对
    file_obj=request.FILES.get('imgFile')  #imgFile就是file文件的键
    file_name=file_obj.name         #取到文件名
    path=os.path.join(根路径,文件夹路径,file_name)  #拼接路径,创建文件夹.
    
    with open(path,'wb')as f:
         for i in file_obj.chunks():            #遍历图片,chunks()指按照一定量取值  
         f.write(i)
    response={
     'error':0,
     url:'/存图片的路径/'  
}    
return Httpresponse(json.dumps(response))
#这里必须用json处理,  返回给插件识别,  url路径是为了渲染到前端,给用户预览.

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!