Django本地配置ckeditor(windows系统)

来源:互联网 发布:javascript拼图教程 编辑:程序博客网 时间:2024/06/05 21:14

使用Django搭建博客时,还不太清楚通过什么方式来进行博客文章的编辑录入,经过查找资料得知可以通过富文本编辑器编辑文本,会自动生成html格式的文本。最后选择了简单的ckeditor作为博客的文章编辑工具。
先安装django-ckeditor,cmd下键入pip install django-ckeditor,安装好后将ckeditor和ckeditor_uploader添加到INSTALL_APPS中,如下:

INSTALLED_APPS = [    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'myblog',    'ckeditor',    'ckeditor_uploader',]

之后需要在setting.py中配置如下:

STATIC_ROOT = os.path.join(BASE_DIR,'static/')CKEDITOR_JQUERY_URL = 'https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js'MEDIA_URL = '/media/'MEDIA_ROOT = os.path.join(BASE_DIR,'media/')CKEDITOR_UPLOAD_PATH = 'uploads/'CKEDITOR_IMAGE_BACKEND = 'PIL'CKEDITOR_CONFIGS = {    'default': {        'toolbar': 'full',    },}

CKEDITOR_JQUERY_URL:是ckeditor初始化时需要jquery库的路径,可以使用本地也可以使用cdn服务器上的。

CKEDITOR_IMAGE_BACKEND:是ckeditor支持缩略图,需要安装pillow(不使用上传图片也可以不配该项)。

CKEDITOR_CONFIGS:是ckeditor编辑器控件的设置,这里全显示。

STATIC_ROOT:是用来存放所有在INSTALLED_APPS中的app的静态文件,在本地部署时可以不需要配置该项,因为使用runserver来运行时是Django来管理静态文件,Django会根据setting.py中配置的STATIC_URL来查找静态文件,但是如果托管到Apache服务器时就是Apache来管理,需要cmd命令在项目路径下执行python manage.py collectstatic来把所有app的静态文件放到STATIC_ROOT中,最后在Apache的httpd.conf中为STATIC_ROOT表示的路径取一个别名,该别名应该与STATIC_URL相同。

其他配置是ckeditor上传图片有用,博主虽然配置但是并未使用上传图片功能,未验证表示的含义。

配置好后在models.py中加入代码:

from ckeditor.fields import RichTextFieldclass Blog(models.Model):content = RichTextField(blank=True,null=True,verbose_name="内容")

然后登入Django的admin后台添加新博客时会有嵌入ckeditor编辑器的编辑界面。

但是博主在最后遇到了点问题,我的Django是1.11版本,使用pip install django-ckeditor安装当时最新的release版django-ckeditor,结果进入admin界面编辑新文章时报了错,大概错误是:build_attrxxxxxxx,记不太清了,查看源码大概的原因是django-ckeditor调用了Django的widget.py中的一个build_attr接口,但是Django1.11版本的这个接口参数变了,而最新的release版django-ckeditor还没加入这一变化的改正。博主在django-ckeditor的github中看到master分支是支持1.11的,只是还没推release版,所以博主卸载了django-ckeditor,在githup中下载了django-ckeditor-master版本,最后可以成功使用ckeditor来编辑博客文章啦。

0 0