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实现批量下载新浪博客的方法
Jun 15 Python
Python实现约瑟夫环问题的方法
May 03 Python
python递归查询菜单并转换成json实例
Mar 27 Python
wxPython之解决闪烁的问题
Jan 15 Python
python爬虫自动创建文件夹的功能
Aug 01 Python
Python向excel中写入数据的方法
May 05 Python
python语言基本语句用法总结
Jun 11 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
python中hasattr()、getattr()、setattr()函数的使用
Aug 16 Python
解决tensorflow读取本地MNITS_data失败的原因
Jun 22 Python
python实现mask矩阵示例(根据列表所给元素)
Jul 30 Python
python+requests实现接口测试的完整步骤
Oct 27 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
用libTemplate实现静态网页的生成
2006/10/09 PHP
php 操作符与控制结构
2012/03/07 PHP
PHP UTF8中文字符截断函数代码
2012/09/11 PHP
PHP导航下拉菜单的实现如此简单
2013/09/22 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
2014/02/13 PHP
PHP使用内置dir类实现目录遍历删除
2015/03/31 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
Javascript - HTML的request类
2007/01/09 Javascript
js玩一玩WSH吧
2007/02/23 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
JQuery中getJSON的使用方法
2010/12/13 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
使用AngularJS实现表单向导的方法
2015/06/19 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
[00:43]TI7不朽珍藏III——幽鬼不朽展示
2017/07/15 DOTA
[56:29]Secret vs Optic 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python在图片中添加文字的两种方法
2017/04/29 Python
Django实现跨域的2种方法
2019/07/31 Python
使用python写的opencv实时监测和解析二维码和条形码
2019/08/14 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python根据文本生成词云图代码实例
2019/11/15 Python
基于python和flask实现http接口过程解析
2020/06/15 Python
Python3交互式shell ipython3安装及使用详解
2020/07/11 Python
python批量生成条形码的示例
2020/10/10 Python
IE支持HTML5的解决方法
2009/10/20 HTML / CSS
Java如何支持I18N?
2016/10/31 面试题
班干部演讲稿
2014/04/24 职场文书
九一八事变纪念日演讲稿
2014/09/14 职场文书
私人房屋买卖协议书
2014/10/04 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
在校证明模板
2015/06/17 职场文书
退休劳动合同怎么写?
2019/10/25 职场文书