(转载)

在django项目中使用django-ckeditor

 

安装django-ckeditor

pip install django-ckeditor

安装Pillow

Pillow是python的一个图像处理库,django-ckeditor需要依赖该库。最简单的安装方法,当然是使用pip,假设你装过pip,可以直接运行以下命令安装:

pip install pillow

配置你的django

要使安装好的django-ckeditor生效,你需要对你的django应用进行一系列配置。

1、在你的settings.py文件中,将ckeditor、ckeditor_uploader添加到INATALLED_APPS中。

2、在你的settings.py文件中,添加CKEDITOR_UPLOAD_PATH配置项。例如,我的是:

MEDIA_URL = "/media/"
MEDIA_ROOT = os.path.join(BASE_DIR, "media")
CKEDITOR_UPLOAD_PATH = "article_images"

CHEDITOR_UPLOAD_PATH的作用是设定你通过ckeditor所上传的文件的存放目录。需要注意的是,这是一个相对路径,它相对与你设置的的MEDIA_ROOT。django-ckeditor默认使用django的后台文件存储系统,这需要你设置好MEDIA_ROOT和MEDIA_URL,如何设置超出了本文的范围,请自行查看django的官方文档,请务必确保这两个设置项是生效的,否则你将看不到你上传的文件。

比如,我上传一张名为shiguang.gif的小图片,该图片将会被存储到:

/my/django/app/root/media/article_images/

至此,你的ckeditor已经可以在django中正常使用了。

需要指出的是:在开发阶段,这样设置settings.py已经足够了。但是,到了正式部署你的应用时,你需要设置好STATIC_ROOT和STATIC_URL,并运行manage.py collectstatic命令,该命令会将ckeditor相关的静态资源拷贝到你的工程下。

3、在urls.py中增加ck的url配置:url(r'^ckeditor/', include('ckeditor_uploader.urls')),

如何应用ckeditor

django-ckeditor提供了两个类:RichTextField和CKEditorWidget,分别用于模型和表单。内容型网站通常在后台会有一个文章发布和编辑的界面,如果你想让该界面拥有一个富文本编辑器,只需按如下方式定义你的django模型:

from django.db import models
from ckeditor.fields import RichTextField class Article(models.Model):
content = RichTextField('文章标题')
启动应用看看,这时可以看到文章标题输入框显示了富文本编辑框
但是怎么可以用的工具那么少???
别急,在settings目录中增加如下配置即可
CKEDITOR_CONFIGS = {
'default': {
'toolbar': (
['div','Source','-','Save','NewPage','Preview','-','Templates'],
['Cut','Copy','Paste','PasteText','PasteFromWord','-','Print','SpellChecker','Scayt'],
['Undo','Redo','-','Find','Replace','-','SelectAll','RemoveFormat'],
['Form','Checkbox','Radio','TextField','Textarea','Select','Button', 'ImageButton','HiddenField'],
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
['Image','Flash','Table','HorizontalRule','Smiley','SpecialChar','PageBreak'],
['Styles','Format','Font','FontSize'],
['TextColor','BGColor'],
['Maximize','ShowBlocks','-','About', 'pbckcode'],
),
}
}

最新文章

  1. python 3.5.2 install pillow
  2. C#:简单线程样例
  3. WPF GroupBox样式
  4. mac自带apache服务器开启
  5. Hightchart.js 的使用
  6. Golang_test
  7. 《Code Complete》ch.15 使用条件语句
  8. ORACLE 单实例完全卸载数据库
  9. oracle 11g rac 无法自动启动
  10. Java [Leetcode 119]Pascal's Triangle II
  11. codeforces 691F Couple Cover 暴力
  12. mac linux netstat -n
  13. 12天学好C语言——记录我的C语言学习之路(Day 6)
  14. ECshop--导航栏模块细究
  15. 面向切面编程(AOP)的理解
  16. MysqlDataSource里的Connection实现类实现了isValid(int timeout)方法
  17. 4. Qt的容器类
  18. <The Art of Readable Code> 笔记二 (下)
  19. Scala: 简介和安装
  20. git之reset图解

热门文章

  1. 将Jexus+mono和网站一起通过Dockerfile打包到docker镜像
  2. Spring 梳理-webApplicationContext 与servletContext
  3. SharePoint 2013 Create Folder with conententtype programer
  4. java获取配置文件中的key=value值
  5. Mycat 配置文件schema.xml
  6. 推荐几个我近期排查线上http接口偶发415时用到的工具
  7. AVR单片机教程——EasyElectronics Library v1.1手册
  8. yii2 对字段 自动加一 或 减一
  9. Asp.NetCore源码学习[2-1]:日志
  10. Rust入坑指南:常规套路