下面是整个攻略的完整步骤:
准备工作
- 安装django:在终端输入
pip install django
进行安装,并创建一个django项目。 - 下载CKEditor:在官网下载CKEditor,并解压到项目的静态文件目录。
- 安装django-ckeditor插件:在终端输入
pip install django-ckeditor
进行安装,并添加到django项目的INSTALLED_APPS中。
配置settings.py
在django项目的settings.py文件中添加以下配置:
CKEDITOR_JQUERY_URL = '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js' # CKEditor需要jquery,使用CDN引用
CKEDITOR_UPLOAD_PATH = 'uploads/' # CKEditor上传的文件路径,在项目的media文件夹中
CKEDITOR_IMAGE_BACKEND = 'pillow' # 上传图片的库,这里使用pillow
CKEDITOR_CONFIGS = { # CKEditor配置项
'default': {
'toolbar': [
{'name': 'basicstyles', 'items': ['Bold', 'Italic', 'Underline']},
{'name': 'links', 'items': ['Link', 'Unlink', 'Anchor']},
{'name': 'paragraph', 'items': ['NumberedList', 'BulletedList']},
{'name': 'insert', 'items': ['Image', 'Table', 'HorizontalRule', 'SpecialChar']},
{'name': 'tools', 'items': ['Maximize']},
],
'height': 300, # 编辑框高度
'width': '100%', # 编辑框宽度
'language': '{{ language }}', # 语言设置,这里使用django内置语言
'toolbarCanCollapse': True, # 如果设置为True,则工具栏可以折叠
'allowedContent': True, # 允许编辑器中输入的所有HTML内容
'startupFocus': True, # 页面加载时编辑框自动获取焦点
}
}
在表单中使用
在django的表单中使用CKEditor需要在表单中添加一个CharField,并指定widget为CKEditorWidget,代码如下:
from django import forms
from ckeditor.widgets import CKEditorWidget
class PostForm(forms.Form):
title = forms.CharField(max_length=100)
content = forms.CharField(widget=CKEditorWidget())
使用的时候,直接在页面中渲染这个表单即可:
{% extends 'base.html' %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
{% endblock %}
在模型中使用
在django的模型中使用CKEditor也非常简单,只需要在需要富文本编辑器的字段上添加一个TextField,再指定widget为CKEditorWidget即可,例如:
from django.db import models
from ckeditor.widgets import CKEditorWidget
class Blog(models.Model):
title = models.CharField(max_length=255)
content = models.TextField(widget=CKEditorWidget())
这样,在django的admin管理后台中就能够使用富文本编辑器了。
以上就是django使用富文本编辑器CKEditor的方法。下面附上一个例子,在一个博客网站中,我们使用CKEditor使用户能够富文本编辑博客正文。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django轻松使用富文本编辑器CKEditor的方法 - Python技术站