技术交流QQ群:1027579432,欢迎你的加入!

本教程来源于B站杨仕航Django2.0开发视频教程,如需转载,必须注明来源!

1.简单文本编辑

  • 首先打开blog文件目录下的templates文件夹下的blog_detail.html模板文件,由于该模板文件可能会执行一些js代码,不是很安全。因此,对当中的{{ blog.content }}模板标签增加一个过滤器{{ blog.content|safe }},如下所示:

    <div class="blog-content">{{ blog.content|safe }}</div>
    
  • 简单文本编辑:打开http://localhost:8000/admin/网址,对其中的某篇博客内容进行加粗和换行编辑操作。如下所示:
    这是一篇测试博客。<b>Shell</b>是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。<br>Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。
    


  • 对博客列表前端页面中出现的问题,打开blog_list.html模板文件,对模板标签{{ blog.content|truncatechars:120 }}修改为{{ blog.content|striptags|truncatechars:120 }},如下所示:

    <p>{{ blog.content|striptags|truncatechars:120 }}</p>
    

2.富文本编辑(使用django-ckeditor)

3.安装django-ckeditor

  • pip install django-ckeditor
  • 注册应用:ckeditor
  • 配置model:把字段改成RichTextField

4.使用django-ckeditor

  • 首先打开全局设置文件settings.py文件,注册django-ckeditor应用。添加如下内容:

    INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog','ckeditor',
    ]
    
  • 接着打开blog文件目录下的models.py文件,将models.TextField()修改为RichTextField(),如下所示:
    from ckeditor.fields import RichTextField
    content = RichTextField()
    
  • 进行数据库迁移:python manage.py makemigrations 和 python manage.py migrate
  • 最后打开全局配置文件settings.py,将语言设置为中文简体。LANGUAGE_CODE = 'zh-Hans’改为zh-hans,如下所示:
    LANGUAGE_CODE = 'zh-hans'
    

5.添加图片上传功能

  • 安装pillow: pip install pillow
  • 注册应用: ‘ckeditor-uploader’。打开全局配置文件settings.py文件,添加如下内容:
    INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog','ckeditor','ckeditor_uploader',
    ]
    
  • 在blog应用根目录下创建media文件夹(用于保存需要上传的文件),如下所示:
  • 配置settings:打开打开全局配置文件settings.py文件,在自定义参数前,添加如下内容:
    # media
    MEDIA_URL = '/media/'
    MEDIA_ROOT = os.path.join(BASE_DIR, 'media')# 配置ckeditor
    CKEDITOR_UPLOAD_PATH = 'upload/'
    
  • 配置url:打开mysite文件目录下的urls.py文件,添加与media相关的路由设置,具体如下内容所示:
    from django.contrib import admin
    from django.urls import include, path
    from django.conf import settings
    from django.conf.urls.static import static
    from . import viewsurlpatterns = [# 博客首页path('', views.home, name="home"),path('admin/', admin.site.urls),path('blog/', include('blog.urls')),path('ckeditor', include('ckeditor_uploader.urls')),]urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
    
  • 配置models: 把字段修改为RichTextUploadingField,将models.py中的RichTextField()修改为RichTextUploadingField()。如下所示:
    from ckeditor_uploader.fields import RichTextUploadingField
    content = RichTextUploadingField()
    
  • 进行数据库迁移:python manage.py makemigrations 和 python manage.py migrate

6.博客后台markdown编辑

博客后台markdown编辑

17 博客后台富文本编辑相关推荐

  1. 富文本编辑_博客的后台富文本编辑和阅读计数

    哈喽,大家好呀,我是滑稽君.本期我们为博客加上分类统计功能.后台富文本编辑功能.和阅读计数功能.那么我们先说说富文本编辑器是什么. 富文本编辑器,Rich Text Editor, 简称 RTE, 它 ...

  2. 记——博客后台管理系统

    博客后台管理系统 博客后台管理系统背景介绍 项目截图 部分代码 登录 主页 文章列表 评论页 个人总结 博客后台管理系统背景介绍   在学校的时候闲来无事喜欢研究研究技术,对前端开发有浓厚的兴趣,于是 ...

  3. 使用react全家桶制作博客后台管理系统

    前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基于react全家桶(React.React-r ...

  4. 简单个人博客系统java web_JavaWeb个人博客项目:手把手教你实现博客后台系统之登录与注册...

    JavaWeb个人博客项目:手把手教你实现博客后台系统之登录与注册 发布时间:2020-07-17 17:10阅读:( )字号: 大 中 小 后台系统的所有界面图以及之前的准备工作欢迎看我之前的博文& ...

  5. Vue实战狗尾草博客后台管理系统

    Vue实战狗尾草博客后台管理系统第一章 这里准备采用的技术栈为:vue全家桶+element-ui 这里因为是后台管理系统,没有做SSR的必要.所以这里就采用前后端分离来昨晚这个项目~ 项目搭建 vu ...

  6. 《全栈营销之如何制作个人博客》之二:php环境安装及个人博客后台搭建 让你的博客跑起来...

    上一节我们讲了个人博客用什么开发语言,用什么CMS系统,从这一节我们就开始真正的干货,这一节我们讨论一下PHP环境的安装,及个人博客后台的搭建,让你的博客在正常的PHP环境中运行起来,你就可以进行后台 ...

  7. node+koa2+mysql搭建博客后台

    本文将详细讲解使用node+koa2+mysql搭建博客后台的全过程. 开发环境 node 8.3.0及以上 npm 5.3.0及以上 mysql 5.7.21 具体的环境配置可查看我的上一篇文章 准 ...

  8. node mysql和koa_node+koa2+mysql搭建博客后台

    本文将详细讲解使用node+koa2+mysql搭建博客后台的全过程. 开发环境 node 8.3.0及以上 npm 5.3.0及以上 mysql 5.7.21 具体的环境配置可查看我的上一篇文章 准 ...

  9. JavaWeb个人博客项目:手把手教你实现博客后台系统之管理员管理模块5

    上一篇博文介绍了注册和登录模块,未看过的人欢迎翻我之前博文~ 接下来就进入登录成功后的主界面,这里主要实现主界面的基础布局和管理员管理模块=w= GitHub地址:https://github.com ...

最新文章

  1. 《Linux 高级程序设计(第三版)》——导读
  2. 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
  3. 双向slider滑动微信小程序组件slider组件
  4. HLSL中的MUL指令深层剖析
  5. Java枚举:小小enum,优雅而干净
  6. 分享B2B信息发布小技巧
  7. 网页设计html最简单水印方法,前端canvas水印快速制作(附完整代码)
  8. Android 6.0 动态权限申请
  9. python将元祖设为整形_python基础(5)---整型、字符串、列表、元组、字典内置方法和文件操作介绍...
  10. 更改应用程序图标_在 Windows 10 version 1903 中查看应用程序是否支持 DPI 感知
  11. 资产放中间,模型策略放两边
  12. JDBC 笔记4 PreparedStatement 与Statement 的区别
  13. iOS 打电话 发短信功能的实现
  14. sql server2014使用BULK INSERT导入UTF-8数据中文乱码问题
  15. python 扫描枪_python实现超市扫码仪计费
  16. Linux磁盘16进制编辑,Tweak
  17. 百度地图-根据经纬度定位示例-百度地图单点标注(整理)
  18. 2021牛客暑期多校训练营#5:C-Cheating and Stealing
  19. 【计算机组成原理】计算机系统结构笔记(9):多处理机
  20. 简单步骤:Android studio 内容观察者 - 实现数据变化监测

热门文章

  1. 操作符重载——C/C++学习笔记
  2. 两个提高javascript执行效率的简易代码分享给大家
  3. C++——运算符的重载---以成员函数方式重载---以友元函数方式重载
  4. IE下的优秀js调试工具Companion.JS
  5. 转发 DDoS攻防战 (一) : 概述
  6. 8款审核AWS帐户安全性的免费工具,你值得拥有
  7. LINUX TOP,不是这样玩地!!!
  8. wxWidgets编译安装gtk问题的解决办法
  9. linux 编程笔记1 crusher for linux
  10. SSL/TLSV1.0 programe in linux