上一篇文章完成了博客内容展示的功能,其中针对 MarkDown 格式的内容进行了解析和展示。本篇文章则着重在发帖功能,在后台增加富文本编辑器编辑博客内容。
先来看下原本后台增加文章的展示界面:
效果图_1.png这里主要对 Content 内容填充的操作增加富文本编辑形式进行编辑。
首先安装富文本编辑器支持的库文件:
pip install django-ckeditor
安装完成后,对 setting.py 进行相关配置。
第三方应用的配置:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'post',
'ckeditor',
'ckeditor_uploader'
]
配置上传文件路径,即 MEDIA 的映射路径:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
CKEDITOR_UPLOAD_PATH = 'upload/'
setting.py 文件配置完成后,需要继续配置根路由下的 url.py 文件:
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^', include('post.urls')),
url(r'ckeditor/', include('ckeditor_uploader.urls')),
]
if DEBUG:
urlpatterns += url(r'^media/(?P<path>.*)/$', serve, {'document_root': MEDIA_ROOT}),
配置完成 ckeditor 的读取路径和 对用上传图片的路径,接下来去对应模型类 model.py 中的数据进行修改。
class Post(models.Model):
title = models.CharField(max_length=100, unique=True)
desc = models.CharField(max_length=100)
content = RichTextUploadingField(null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE)
tag = models.ManyToManyField(Tag)
class Meta:
db_table = 't_post'
verbose_name_plural = u'帖子'
def __unicode__(self):
return u'Post:%s' % self.title
def __str__(self):
return u'Post:%s' % self.title
对应 content 字段进行改变,应用 ckeditor 包中的 RichTextUploadingField 字段,content 字段已经改变了,最后,对应的迁移文件也需要重新生成。
运行相关命令:
python manage.py makemigrations
python manage.py migarte
G:\2_blog>python manage.py makemigrations
Migrations for 'post':
post\migrations\0002_auto_20200724_2139.py
- Change Meta options on category
- Change Meta options on post
- Change Meta options on tag
- Alter field cname on category
- Alter field created on post
- Alter field tname on tag
G:\2_blog>python manage.py migrate
Operations to perform:
Apply all migrations: admin, auth, contenttypes, post, sessions
Running migrations:
Applying post.0002_auto_20200724_2139... OK
生成新的对应的迁移文件。
最后去后台看下新建帖子的界面情况:
效果图_2.png欢迎关注公众号,在聊天对话框回复「博客」获取源码地址以及其他 python 相关知识。
python面面观.jpg
网友评论