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的Bottle框架的一些使用技巧介绍
Apr 08 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
python使用Apriori算法进行关联性解析
Dec 21 Python
python实现Flappy Bird源码
Dec 24 Python
matplotlib实现区域颜色填充
Mar 18 Python
python实现微信定时每天和女友发送消息
Apr 29 Python
Pandas DataFrame数据的更改、插入新增的列和行的方法
Jun 25 Python
Python socket非阻塞模块应用示例
Sep 12 Python
安装2019Pycharm最新版本的教程详解
Oct 22 Python
基于python求两个列表的并集.交集.差集
Feb 10 Python
jupyter notebook 的工作空间设置操作
Apr 20 Python
能让Python提速超40倍的神器Cython详解
Jun 24 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
JQuery困惑—包装集 DOM节点
2009/10/16 Javascript
jquery滚动组件(vticker.js)实现页面动态数据的滚动效果
2013/07/03 Javascript
javascript获取元素偏移量的方法有哪些
2014/06/24 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
jQuery判断对象是否存在的方法
2015/02/05 Javascript
js获取form的方法
2015/05/06 Javascript
jQuery动态添加
2016/04/07 Javascript
nodejs的HTML分析利器node-jquery用法浅析
2016/11/08 NodeJs
实例分析nodejs模块xml2js解析xml过程中遇到的坑
2017/03/18 NodeJs
[js高手之路]HTML标签解释成DOM节点的实现方法
2017/08/31 Javascript
JS库之Highlight.js的用法详解
2017/09/13 Javascript
jQuery实现百度图片移入移出内容提示框上下左右移动的效果
2018/06/05 jQuery
一分钟学会JavaScript中的try-catch
2020/12/14 Javascript
pymssql ntext字段调用问题解决方法
2008/12/17 Python
python回溯法实现数组全排列输出实例分析
2015/03/17 Python
python编程开发之类型转换convert实例分析
2015/11/13 Python
Python制作词云的方法
2018/01/03 Python
Python三种遍历文件目录的方法实例代码
2018/01/19 Python
python使用Matplotlib绘制分段函数
2018/09/25 Python
python并发编程多进程 互斥锁原理解析
2019/08/20 Python
Python操作redis和mongoDB的方法
2019/12/19 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
CSS3 二级导航菜单的制作的示例
2018/04/02 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
理肤泉美国官网:La Roche-Posay
2018/01/17 全球购物
茱莉蔻美国官网:Jurlique美国
2020/11/24 全球购物
用JAVA SOCKET编程,读服务器几个字符,再写入本地显示
2012/11/25 面试题
社区母亲节活动方案
2014/03/05 职场文书
婚礼主持结束词
2014/03/13 职场文书
四风问题自我剖析材料
2014/10/07 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2015年汽车销售工作总结
2015/04/07 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python