Django添加KindEditor富文本编辑器的使用


Posted in Python onOctober 24, 2018

KindEditor简介:

KindEditor是一套开源的在线HTML编辑器,主要用于让用户在网站上获得所见即所得编辑效果,开发人员可以用KindEditor 把传统的多行文本输入框(textarea)替换为可视化的富文本输入框。

KindEditor使用JavaScript编写,可以无缝地与 Java、.NET、PHP、ASP 等程序集成,比较适合在 CMS、商城、论坛、博客、Wiki、电子邮件等互联网应用上使用。

在Django Admin当中加入KindEditor,这比干巴巴的textarea好多了。加入之后的效果如下:

1、设置static文件路径

KindEditor是用JavaScript编写的,这属于static files,因此需要为Django设置static路径。

首先在工程目录下新建static文件夹,这里要注意的是千万不要在my_app/下创建static文件夹作为static文件存放的目录, 这会导致Django无法搜索到自己的static 文件。

创建后好,在settings中配置static文件目录。添加以下代码

STATIC_URL = '/static/'
STATICFILES_DIRS = (
 os.path.join(BASE_DIR, 'static'),
)

2、下载KindEditor

下载KindEditor, 解压后将那些没用的asp, asp.NET, php, jsp, examples文件该删掉后拷贝到static目录下,由于KindEditor是js文件有事编辑器,所以就设置了js/editor目录,并将KindEditor代码拷贝到该目录下。

就像这样子static/js/editor/kindeditor-4.1.7

3、在admin后台管理当中的html页面加入JavaScript代码

在kindeditor-4.1.7目录下新建config.js文件,内容如下:

KindEditor.ready(function(K) {
 window.editor = K.create('#id_content',{
  // 指定大小
  width:'800px',
  height:'200px',
 });
});

4、在admin.py中的的管理类中添加class Media,引入js文件

这里是一个完整的admin.py示例

备注:class 一定要在admin.site.register前面,不然程序会报错,显示没有define

from django.contrib import admin
from .models import category,tags,article
# Register your models here.
class articleAdmin(admin.ModelAdmin):
 list_display = ('id','title','create_time','change_time','type') #添加字段显示
 search_fields = ('title') #添加快速查询栏
 class Media:
  # 在管理后台的HTML文件中加入js文件, 每一个路径都会追加STATIC_URL/
  js = (
   '/static/js/editor/kindeditor-4.1.7/kindeditor-all.js',
   '/static/js/editor/kindeditor-4.1.7/lang/zh_CN.js',
   '/static/js/editor/kindeditor-4.1.7/config.js',
  )
admin.site.register(category)
admin.site.register(tags)
admin.site.register(article,articleAdmin)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
跟老齐学Python之总结参数的传递
Oct 10 Python
Python函数式编程指南(二):从函数开始
Jun 24 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
Django自定义manage命令实例代码
Feb 11 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
Python函数中参数是传递值还是引用详解
Jul 02 Python
从0到1使用python开发一个半自动答题小程序的实现
May 12 Python
Python内置方法和属性应用:反射和单例(推荐)
Jun 19 Python
python3.6中anaconda安装sklearn踩坑实录
Jul 28 Python
python实现scrapy爬虫每天定时抓取数据的示例代码
Jan 27 Python
使用Selenium实现微博爬虫(预登录、展开全文、翻页)
Apr 13 Python
使用Pytorch训练two-head网络的操作
May 28 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 #Python
Python将8位的图片转为24位的图片实现方法
Oct 24 #Python
Python SMTP发送邮件遇到的一些问题及解决办法
Oct 24 #Python
使用PyCharm创建Django项目及基本配置详解
Oct 24 #Python
python实现在图片上画特定大小角度矩形框
Oct 24 #Python
python多进程使用及线程池的使用方法代码详解
Oct 24 #Python
python实现图片筛选程序
Oct 24 #Python
You might like
PHP 学习路线与时间表
2010/02/21 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
php修改指定文件后缀的方法
2014/09/11 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
JS方法调用括号的问题探讨
2014/01/24 Javascript
JavaScript的内存释放问题详解
2015/01/21 Javascript
JS+CSS实现Li列表隔行换色效果的方法
2015/02/16 Javascript
关于JavaScript作用域你想知道的一切
2016/02/04 Javascript
javascript瀑布流式图片懒加载实例解析与优化
2016/02/23 Javascript
JavaScript必知必会(七)js对象继承
2016/06/08 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
JS中Select下拉列表类(支持输入模糊查询)功能
2017/01/17 Javascript
angularJS 指令封装回到顶部示例详解
2017/01/22 Javascript
AngularJS 防止页面闪烁的方法
2017/03/09 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
javascript实现留言板功能
2020/02/08 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
python获取Linux下文件版本信息、公司名和产品名的方法
2014/10/05 Python
深入理解Django自定义信号(signals)
2018/10/15 Python
浅析PEP572: 海象运算符
2019/10/15 Python
Python迷宫生成和迷宫破解算法实例
2019/12/24 Python
python numpy数组中的复制知识解析
2020/02/03 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
python开发一个解析protobuf文件的简单编译器
2020/11/17 Python
AutoShack.com加拿大:北美主要的汽车零部件零售商
2019/07/24 全球购物
意大利香水和化妆品购物网站:Parfimo.it
2019/10/06 全球购物
护士自我鉴定范文
2013/10/06 职场文书
试用期员工考核制度
2014/01/22 职场文书
求职面试个人自我评价
2014/02/28 职场文书
个人委托书范本
2014/04/02 职场文书
求职个人评价范文
2014/04/09 职场文书
Golang Gob编码(gob包的使用详解)
2021/05/07 Golang
vue+spring boot实现校验码功能
2021/05/27 Vue.js
浅谈Java父子类加载顺序
2021/08/04 Java/Android