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模块学习 re 正则表达式
May 19 Python
django将图片上传数据库后在前端显式的方法
May 25 Python
解决tensorflow测试模型时NotFoundError错误的问题
Jul 27 Python
Django rstful登陆认证并检查session是否过期代码实例
Aug 13 Python
pytorch 使用单个GPU与多个GPU进行训练与测试的方法
Aug 19 Python
用Python写一个自动木马程序
Sep 17 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
django admin后管定制-显示字段的实例
Mar 11 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
Oct 15 Python
numpy实现RNN原理实现
Mar 02 Python
Python selenium模拟网页点击爬虫交管12123违章数据
May 26 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
qq登录,新浪微博登录接口申请过程中遇到的问题
2014/07/22 PHP
Laravel框架中扩展函数、扩展自定义类的方法
2014/09/04 PHP
支持中文的PHP按字符串长度分割成数组代码
2015/05/17 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
javascript动画效果类封装代码
2007/08/28 Javascript
JavaScript 未结束的字符串常量常见解决方法
2010/01/24 Javascript
Javascript 类与静态类的实现(续)
2010/04/02 Javascript
jQuery获取地址栏参数插件(模仿C#)
2010/10/26 Javascript
JavaScript获取table中某一列的值的方法
2014/05/06 Javascript
我用的一些Node.js开发工具、开发包、框架等总结
2014/09/25 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
JavaScript将一个数组插入到另一个数组的方法
2015/03/19 Javascript
JavaScript数据类型学习笔记
2016/01/25 Javascript
基于jquery实现图片放大功能
2016/05/07 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
jQuery ajax实现省市县三级联动
2021/03/07 Javascript
使用jQuery ajaxupload插件实现无刷新上传文件
2017/04/23 jQuery
微信小程序url传参写变量的方法
2018/08/09 Javascript
javascript中数组的常用算法深入分析
2019/03/12 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
二种python发送邮件实例讲解(python发邮件附件可以使用email模块实现)
2013/12/03 Python
python @property的用法及含义全面解析
2018/02/01 Python
教你一步步利用python实现贪吃蛇游戏
2019/06/27 Python
python3 os进行嵌套操作的实例讲解
2020/11/19 Python
FC-Moto英国:欧洲最大的摩托车服装和头盔商店之一
2019/08/25 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
BannerBuzz加拿大:在线定制横幅印刷、广告和标志
2020/03/10 全球购物
Java如何获得ResultSet的总行数
2016/09/03 面试题
电焊工工作岗位职责
2014/02/06 职场文书
党员干部反四风民主生活会对照检查材料思想汇报
2014/10/12 职场文书
element多个表单校验的实现
2021/05/27 Javascript
python 爬取华为应用市场评论
2021/05/29 Python
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫
星际争霸:毕姥爷vs解冻01
2022/04/01 星际争霸