django轻松使用富文本编辑器CKEditor的方法


Posted in Python onMarch 30, 2017

前言

django是一个容易快速上手的web框架,用它来创建内容驱动型的网站(比如独立博客)十分方便。遗憾的是,django并没有提供官方的富文本编辑器,而后者恰好是内容型网站后台管理中不可或缺的控件。ckeditor是一款基于javascript,使用非常广泛的开源网页编辑器。它可以和多种编程语言相结合,python当然也不例外。本文就来介绍一下如何在基于django博客系统如何完美地用上ckeditor。

使用方法

1、安装

pip install django-ckeditor

2、将‘ckeditor'settings.py中的INSTALLED_APPS

3、由于djang-ckeditor在ckeditor-init.js文件中使用了JQuery,所以要在settings.py中设置CKEDITOR_JQUERY_URL来指定JQuery库的路径,例如:

CKEDITOR_JQUERY_URL ='https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'

4、设定STATIC_ROOT,执行python manage.py collectstatic,将CKEditor需要的媒体资源拷入STATIC_ROOT指定的路径中。

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

django轻松使用富文本编辑器CKEditor的方法

5、

from django.db import models
from ckeditor.fields import RichTextField

class Blog(models.Model):
 title = models.CharField(max_length=50,verbose_name="标题")
 content = RichTextField(blank=True,null=True,verbose_name="内容")

 def __unicode__(self):
 return self.name

效果:

django轻松使用富文本编辑器CKEditor的方法

文件上传

1、在settings.py中的INSTALLED_APPS中添加ckeditor_uploader

2、CKEditor使用Django的存储API,默认使用Django的文件存储,会用到MEDIA_ROOT和MEDIA_URL,需要在settings.py中定义,此外还可以指定CKEDITOR_UPLOAD_PATH,它位于MEDIA_ROOT下:

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media/')
CKEDITOR_UPLOAD_PATH = 'uploads/'

3、在项目的urls.py中添加CKEditor的URL映射

url(r'^ckeditor/', include('ckeditor_uploader.urls')),

如果不加,可能会出现以下错误:

django轻松使用富文本编辑器CKEditor的方法

4、(可选项) 在settings.py中加入CKEDITOR_IMAGE_BACKEND ,使能thumbnails,例如:

CKEDITOR_IMAGE_BACKEND = 'PIL'
from ckeditor_uploader.fields import RichTextUploadingField
class Post(models.Model):
 content = RichTextUploadingField()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
跟老齐学Python之print详解
Sep 28 Python
Python随机函数random()使用方法小结
Apr 29 Python
python中将正则过滤的内容输出写入到文件中的实例
Oct 21 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
int在python中的含义以及用法
Jun 27 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python中property和setter装饰器用法
Dec 19 Python
Python爬虫爬取博客实现可视化过程解析
Jun 29 Python
Python 下载Bing壁纸的示例
Sep 29 Python
Django自带用户认证系统使用方法解析
Nov 12 Python
python将下载到本地m3u8视频合成MP4的代码详解
Nov 24 Python
python实现模拟器爬取抖音评论数据的示例代码
Jan 06 Python
python下读取公私钥做加解密实例详解
Mar 29 #Python
django开发之settings.py中变量的全局引用详解
Mar 29 #Python
深入理解Python3中的http.client模块
Mar 29 #Python
Python 中迭代器与生成器实例详解
Mar 29 #Python
Python利用Beautiful Soup模块搜索内容详解
Mar 29 #Python
windows系统下Python环境搭建教程
Mar 28 #Python
Python中Django 后台自定义表单控件
Mar 28 #Python
You might like
php面向对象全攻略 (十一)__toString()用法 克隆对象 __call处理调用错误
2009/09/30 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
PHP高手需要要掌握的知识点
2014/08/21 PHP
PHP实现的多维数组排序算法分析
2018/02/10 PHP
有一段有意思的代码-javascript现实多行信息
2007/08/26 Javascript
JavaScript使用过程中需要注意的地方和一些基本语法
2010/08/26 Javascript
js使用eval解析json实例与注意事项分享
2014/01/18 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
javascript正则表达式基础知识入门
2015/04/20 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
JS判断字符串变量是否含有某个字串的实现方法
2016/06/03 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
Angular的$http的ajax的请求操作(推荐)
2017/01/10 Javascript
xmlplus组件设计系列之网格(DataGrid)(10)
2017/05/05 Javascript
js中this对象用法分析
2018/01/05 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue将data恢复到初始状态 && 重新渲染组件实例
2020/09/04 Javascript
[57:28]2018DOTA2亚洲邀请赛 4.6 淘汰赛 TNC vs Liquid 第一场
2018/04/10 DOTA
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python开发中爬虫使用代理proxy抓取网页的方法示例
2017/09/26 Python
Python中asyncio与aiohttp入门教程
2018/10/16 Python
Python使用random.shuffle()打乱列表顺序的方法
2018/11/08 Python
dpn网络的pytorch实现方式
2020/01/14 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
2020/05/24 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
五分钟学会怎么用Pygame做一个简单的贪吃蛇
2021/01/06 Python
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
模具数控专业自荐信
2014/01/27 职场文书
工作会议主持词
2014/03/17 职场文书
财务总监岗位职责
2015/02/03 职场文书
2015年全国爱眼日活动小结
2015/02/27 职场文书
地道战观后感
2015/06/04 职场文书
2015年新教师个人工作总结
2015/10/14 职场文书
八年级作文之一起的走过日子
2019/09/17 职场文书