17 博客后台富文本编辑

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

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

1.简单文本编辑

使用HTML丰富页面.png

  • 首先打开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。
    简单文本编辑效果.png
    存在的问题.png
  • 对博客列表前端页面中出现的问题,打开blog_list.html模板文件,对模板标签{{ blog.content|truncatechars:120 }}修改为{{ blog.content|striptags|truncatechars:120 }},如下所示:
      <p>{{ blog.content|striptags|truncatechars:120 }}</p>
    问题已解决.png

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

富文本编辑选取原则.png

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
    富文本编辑效果展示.png
  • 最后打开全局配置文件settings.py,将语言设置为中文简体。LANGUAGE_CODE = 'zh-Hans'改为zh-hans,如下所示:
      LANGUAGE_CODE = 'zh-hans'

5.添加图片上传功能

本地图片无法上传.png

  • 安装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文件夹(用于保存需要上传的文件),如下所示:
    创建media文件夹.png

  • 配置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 views
    
      urlpatterns = [
          # 博客首页
          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
    图片上传效果展示.png

6.博客后台markdown编辑

博客后台markdown编辑

全部评论

相关推荐

双飞二本嵌入式求拷打我是在&nbsp;BOSS&nbsp;上投递的简历,好多都没人回复,这是开场白和简历求大神帮忙看看。您好!我是2025届应届生,最快可在一周内上岗,能够实习六个月以上,并接受加班。以下是我的核心优势和相关经验:1.&nbsp;嵌入式开发能力:&nbsp;&nbsp;&nbsp;熟练掌握STM32系列单片机及其外设(如GPIO、定时器、ADC、DAC、I2C、SPI、UART等),能够独立完成硬件驱动开发和调试。&nbsp;&nbsp;熟悉FreeRTOS实时操作系统,具备多任务调度和资源管理经验。&nbsp;&nbsp;熟悉LVGL图形库开发,能够实现嵌入式设备的图形界面设计。2.&nbsp;硬件设计能力:&nbsp;&nbsp;&nbsp;具备PCB设计经验,曾为2023年工创赛物流搬运赛道设计小车主板,带领团队获得国家级银奖。&nbsp;&nbsp;&nbsp;熟悉硬件原理图分析,能够快速理解并调试硬件电路。3.&nbsp;机器人开发与竞赛经验:&nbsp;&nbsp;&nbsp;在全国大学生智能车竞赛、ROS机器人竞赛中多次获得国家级奖项,具备丰富的机器人开发经验。&nbsp;&nbsp;&nbsp;熟悉Linux环境,对ROS和ROS&nbsp;2有一定了解,能够进行机器人系统的开发与调试。4.&nbsp;编程能力:&nbsp;&nbsp;&nbsp;熟悉C/C++,熟悉Python,能够高效完成嵌入式开发和算法实现。&nbsp;&nbsp;&nbsp;具备良好的代码规范和文档编写能力。5.&nbsp;团队协作与领导能力:&nbsp;&nbsp;&nbsp;在多个项目中担任核心开发或团队负责人,具备良好的沟通能力和团队协作精神。&nbsp;&nbsp;&nbsp;在工创赛中带领团队完成项目规划、任务分配和技术攻关,展现了较强的领导力。我对嵌入式开发、机器人技术和智能硬件充满热情,期待加入贵公司,与团队共同成长,为公司创造价值!如果有合适的岗位,欢迎随时联系我,期待进一步沟通!
沉淀一会:嵌入式就是狗屎
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务