Django后天管理集成文本编辑器django-ckeditor
一、集成有【上传本地图片】功能的文本编辑器django-ckeditor
【提示:以下内容需要在实现第五天效果的基础上】
1、安装库: pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ pillow
2、注册应用: 在settings.py文件的INSTALLED_APPS下加入 'ckeditor_uploader',
3、在项目根目录下创建media目录
4、继续配置settings.py,添加如下代码
#使用上传功能,需要设置上传位置。
#该文件是上传到media目录,所以也需要设置media。
#打开settings.py添加如下设置:
MEDIA_URL = '/media/'
# 放在django项目根目录,同时也需要创建media文件夹
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'upload/' #程序会自动创建upload目录
5、配置url.py,添加如下代码,有重复的import请做删除
from django.conf import settings
from.conf.urls.static import static
from django.urls import path
path('ckeditor',include('ckeditor_uploader.urls')) #这一条放在 [ ] 之内
if settings.DEBUG #这2条放在 [ ] 之外
(空2格)urlpatterns +=static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
6、配置model.py:添加如下代码
from django.db import models
from ckeditor_uploader.fields import RichTextUploadingField
class Blog(models.Model): #请将此类代码放在第一个位置
title = models.CharField(max_length=50)
content = RichTextUploadingField() #请替换相应应用的函数,以启用文本编辑器
如:
#class PostInfo(models.Model):
#user = models.ForeignKey(UserInfo, on_delete=models.CASCADE,verbose_name='栏目类别')
#title = models.CharField(max_length=50,verbose_name='标题')
#content = RichTextUploadingField(verbose_name='内容') #<---- 比如这个地方就被替换成了 RichTextUploadingField 函数
4、输入如上模型语句后,在终端中输入
python manage.py makemigrations #生成迁移文件
python manage.py migrate #迁移数据库,创建新表
5、启动程序,进入后台管理,添加文章,内容位置就显示为文本编辑器了。
【可以实现本地上传图片的功能,用以发布信息】