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爬虫之使用Scrapy框架编写爬虫
Nov 07 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 Python
Python中将变量按行写入txt文本中的方法
Apr 03 Python
和孩子一起学习python之变量命名规则
May 27 Python
在PyCharm中三步完成PyPy解释器的配置的方法
Oct 29 Python
Flask框架学习笔记之模板操作实例详解
Aug 15 Python
python 循环数据赋值实例
Dec 02 Python
Python re正则表达式元字符分组()用法分享
Feb 10 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
如何卸载python插件
Jul 08 Python
Python 利用flask搭建一个共享服务器的步骤
Dec 05 Python
Python字符串格式化方式
Apr 07 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截取指定2个字符之间字符串的方法
2015/04/15 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
javascript中获取选中对象的类型
2007/04/02 Javascript
jQuery.each()用法分享
2012/07/31 Javascript
jquery动态增加删除表格行的小例子
2013/11/14 Javascript
JQuery中属性过滤选择器用法实例分析
2015/05/18 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
详解angularJS自定义指令间的相互交互
2017/07/05 Javascript
使用JavaScript实现alert的实例代码
2017/07/06 Javascript
vue响应式系统之observe、watcher、dep的源码解析
2019/04/09 Javascript
Vue学习之组件用法实例详解
2020/01/06 Javascript
vue-以文件流-blob-的形式-下载-导出文件操作
2020/08/07 Javascript
js仿淘宝放大镜效果
2020/12/28 Javascript
python函数缺省值与引用学习笔记分享
2013/02/10 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
2015/04/09 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
python去除扩展名的实例讲解
2018/04/23 Python
解决pycharm回车之后不能换行或不能缩进的问题
2019/01/16 Python
python之yield和Generator深入解析
2019/09/18 Python
详解Python中Pyyaml模块的使用
2020/10/08 Python
python实现跨年表白神器--你值得拥有
2021/01/04 Python
python time.strptime格式化实例详解
2021/02/03 Python
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
2016/10/06 面试题
信息技术专业大学生职业生涯规划书
2014/01/24 职场文书
家长对老师的评语
2014/04/18 职场文书
个人考核材料
2014/05/15 职场文书
诚实守信演讲稿
2014/09/01 职场文书
机关领导干部作风整顿整改措施
2014/09/19 职场文书
实习计划书范文
2015/01/16 职场文书
生产车间主任岗位职责
2015/04/08 职场文书
百万英镑观后感
2015/06/09 职场文书
2016年党员公开承诺书范文
2016/03/24 职场文书
matplotlib之pyplot模块实现添加子图subplot的使用
2021/04/25 Python
MySQL高级进阶sql语句总结大全
2022/03/16 MySQL
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫