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中文竖排显示的方法
Jul 28 Python
使用Python监视指定目录下文件变更的方法
Oct 15 Python
python 获得任意路径下的文件及其根目录的方法
Feb 16 Python
用python生成(动态彩色)二维码的方法(使用myqr库实现)
Jun 24 Python
Python 控制终端输出文字的实例
Jul 12 Python
对python中的os.getpid()和os.fork()函数详解
Aug 08 Python
Python基础之字典常见操作经典实例详解
Feb 26 Python
python字符串的index和find的区别详解
Jun 20 Python
实现Python3数组旋转的3种算法实例
Sep 16 Python
详解Python+Selenium+ChromeDriver的配置和问题解决
Jan 19 Python
pytorch 实现L2和L1正则化regularization的操作
Mar 03 Python
pytorch实现手写数字图片识别
May 20 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
Smarty安装配置方法
2008/04/10 PHP
PHP编实现程动态图像的创建代码
2008/09/28 PHP
Joomla使用Apache重写模式的方法
2016/05/04 PHP
PHP实现一个轻量级容器的方法
2019/01/28 PHP
jQuery UI 应用不同Theme的办法
2010/09/12 Javascript
IE6浏览器下resize事件被执行了多次解决方法
2012/12/11 Javascript
JS 按钮点击触发(兼容IE、火狐)
2013/08/07 Javascript
JS字符串截取函数实例
2013/12/27 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
AngularJS语法详解
2015/01/23 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
koa-passport实现本地验证的方法示例
2020/02/20 Javascript
跟老齐学Python之有容乃大的list(2)
2014/09/15 Python
Python基本语法经典教程
2016/03/11 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python根据unicode判断语言类型实例代码
2018/01/17 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
2019/01/15 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python 并发下载器实现方法示例
2019/11/22 Python
python生成任意频率正弦波方式
2020/02/25 Python
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
法国综合购物网站:RueDuCommerce
2016/09/12 全球购物
delegate与普通函数的区别
2014/01/22 面试题
个人教师自我评价范文
2013/12/02 职场文书
微观物理专业自荐信
2014/01/26 职场文书
《藤野先生》教学反思
2014/02/19 职场文书
红色故事演讲稿
2014/05/22 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
教师读书活动心得体会
2016/01/14 职场文书
反邪教学习心得体会
2016/01/15 职场文书