【Django 027】tinymce富文本框使用详解

vue3怎么添加一个富文本框(详细教程)? 有时我们要添加一些具有一定格式的信息,信息中包含文字、符号、表情、以及图片视频等信息数据,富文本框是一个好的选择。wangEditor用法简单,能够大大满足用户的需求,具有可扩展性,中文开发文档丰富,适用于当下一些主流的前端框架,比如:Vue、React等本文笔者采用的vue-admin-element-template框架引入wangEditor富文本框。(2)下载完成后加入结构模板,由于我在添加编辑时需要富文本框,以下是我添加弹窗中的表单部分。(1)安装wangEditor,此处我使用的是npm下载。 阅读详情

针对博客和论坛类网站,用户需要在网页的富文本框中输入内容传递到后端。那么Django项目如何生成一个包含富文本框的页码,又如何获取用户上传的富文本内容呢?这一节我们就一起来看看。

我是T型人小付,一位坚持终身学习的互联网从业者。喜欢我的博客欢迎在csdn上关注我,如果有问题欢迎在底下的评论区交流,谢谢。

富文本框

所谓富文本(Rich Text Format, RTF),就是包含各种格式的文字。

大家熟悉的markdown就是一种生成带格式文字的工具,不过markdown使用特殊符号来形成格式,而富文本框就是通过点击按钮来生成带格式文字的工具。下图是个典型的富文本框
1-demo.png

Django的富文本框插件

这里我们使用tinymce插件来实现网页中的富文本框。网上有很多别的插件,使用方法都差不多,tinymce如果觉得不够炫酷,也可以找别的插件。重要的是知其所以然。

安装tinymce

直接pip install django-tinymce或者在pycharm的设置中安装
2-tinymce.png

注册tinymce

有些python模块安装好后就可以直接被当作一个应用加入到django项目中,这个tinymce就是其中之一。

后面我们在学习如何自己写可以重复使用的django应用

  • 首先在项目的settings.py的INSTALLED_APPS中添加tinymce
  • 同时在settings.py中添加一个默认配置
TINYMCE_DEFAULT_CONFIG = {
    'theme': 'advanced',
    'width': 800,
    'height': 600,
}

创建数据模型

用户上传的富文本需要用专门的字段来存储,这个tinymce也替我们想到了。

from django.db import models

# Create your models here.
from tinymce.models import HTMLField


class Blog(models.Model):
    b_content = HTMLField()

这里的HTMLField继承自models.TextField.

之后迁移到数据库,看看DDL如下

create table App_blog
(
    id        int auto_increment
        primary key,
    b_content longtext not null
);

其实就是一个SQL中的longtext字段

创建HTML页面

下面开始在页面中应用,虽说随着前后的分离,网页主要是前端生成,不过这里为了演示方便采用django后端生成的方式。

富文本还可以在后台管理中使用,后面我们再学

创建一个页面blog.html如下

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Edit Blog</title>
    <script type="text/javascript"  src="/static/tinymce/tinymce.min.js"></script>
    <script type="text/javascript">
        tinyMCE.init({
            'mode':'textareas',
            'theme': 'silver',
            'width': 800,
            'height': 600,
        });
    </script>
</head>
<body>
<form action="#", method="post">
    {% csrf_token %}
    <textarea name="" id="" cols="30" rows="10"></textarea>
</form>
</body>
</html>

这个页面有下面几点要说明

  • 要应用tinymce中的一个静态js文件,这里用的是绝对路径。如果要用相对路径,之前说过app级别的配置为STATIC_URL,项目级别的配置为STATICFILES_DIRS,配置为STATIC_URL = '/static/'的情况下可以用下面的方式
<script type="text/javascript"  src="{% static 'tinymce/tinymce.min.js' %}"></script>
  • 不同版本的tinymce对应的js文件名也不一致,我下载的tinymce版本是3.0.2,名称为tinymce.min.js,根据实际情况去填写,不然在浏览器的console会有404的报错
  • 同样的theme也要根据实际的名字去填写,不然会有404报错

之后创建如下路由和view函数

path('editblog/', views.edit_blog, name='edit_blog'),
def edit_blog(request):
    return render(request, 'blog.html')

请求页面结果如下
3-textarea.png

富文本数据模型

下面将数据传递到后端看看这些带格式的文字究竟是如何存储的。

修改下h5页面,加入提交按钮和链接

<body>
<form action="{% url 'app:edit_blog' %}", method="post">
    {% csrf_token %}
    <textarea name="content" id="" cols="30" rows="10"></textarea>
    <input type="submit">
</form>
</body>

修改下view函数

def edit_blog(request):
    if request.method == 'GET':
        return render(request, 'blog.html')
    elif request.method == 'POST':
        content = request.POST.get('content', '')
        blog = Blog()
        blog.b_content = content
        blog.save()
        return HttpResponse('saved')

编辑一下富文本,然后提交
4-content.png
进数据库中查看,发现存储的就是HTML
5-save.png
将这段HTML直接显示在网页上就变成了含有格式的文字。

总结

几个知识点总结下

  • 实现富文本的插件有很多,不能局限于tinymce
  • 不同版本的tinymce下载后包含的js和theme的名字会有所差异
  • 富文本发送到后端还是以HTML的格式保存,可以直接显示在网页上
【UGUI】Rich Text富文本介绍及使用 Rich Text富文本介绍及使用。 阅读详情

相关推荐

C# RichTextBox 富文本框使用

C# 富文本框使用案例

m0_47020592的博客 1644

这13个开源的富文本框组件,可有中意的?

在当今互联网时代,富文本编辑器在各种应用场景中扮演着重要角色。无论是博客编辑、社交媒体发布还是在线协作,用户对于编辑体验的要求越来越高。而开源富文本框正是应运而生的解决方案,它为开发者提供了一种灵活可定制的编辑工具,不仅能满足用户的需求,还能提升用户的编辑效率和体验。这里就分享几个开源的富文本框组件CKEditorCKEditor是一个开源的富文本编辑器,它允许用户在网页上进行所见即所得的编辑。以...

zls365365的博客 5180

全面解析富文本框插件:从基础到高级功能实现

富文本框(Rich Text Editor),简称RTE,是一种允许用户在网页中输入格式化的文本内容的界面组件。它提供了一种直观的WYSIWYG(所见即所得)编辑体验,用户可以通过点击工具栏按钮来进行文字加粗、字体样式更改、插入图片、创建列表等操作,而不需要直接编辑HTML代码。CSS预设是富文本编辑器提供的一组预定义的样式,让用户可以轻松地应用到内容中。这些样式通常包括字体大小、颜色方案、段落间距等,旨在简化编辑过程并提供统一的视觉体验。

weixin_29476595的博客 1144

一文带你搞懂什么是富文本

富文本作为一种强大的文本格式,广泛应用于各种场景。通过HTML、CSS、JavaScript等技术,富文本不仅能够实现丰富的格式和样式,还能提供动态的交互体验。随着技术的不断发展,富文本将在未来展现出更多的可能性和应用价值。希望本文能帮助你更好地理解富文本及其技术原理,为你的技术学习和应用提供参考。

码上飞扬的博客 1万+

手把手教你实现阿克曼ROS小车的运动控制

本文详细介绍了如何从零开始实现阿克曼ROS小车的运动控制。内容涵盖硬件搭建、STM32底层PID速度与舵机控制、ROS层阿克曼运动学模型解析,以及上下位机通信协议设计。通过手把手的代码示例和调试步骤,帮助机器人爱好者与开发者掌握将高级速度指令转化为小车具体动作的全流程,实现流畅的阿克曼转向控制。

weixin_29193259的博客 198

【YOLOv8实战】从零构建番茄成熟度智能检测GUI系统【附完整工程】

本文详细介绍了从零构建基于YOLOv8的番茄成熟度智能检测GUI系统的完整实战流程。内容涵盖环境搭建、数据集准备、模型训练调优,并重点讲解如何使用PyQt5开发图形界面,最终将项目打包为可执行文件,实现AI模型从训练到桌面应用落地的完整工程闭环。

xxx12的博客 820

前端 富文本框

页面展示: 步骤: 1,下载js包,引入文件ueditor <script type="text/javascript" charset="utf-8" src="/static/portalres/jsfolder/ueditor/ueditor.config.js"></script> <script type="text/javascript" charset="utf-8" src="/static/portalres/jsfolder/ueditor/ueditor

qq_36636312的博客 5402

基于dify平台批量分析excel格式信息

如何以表格形式批量输入一些信息,然后让大模型以对话应用形式逐条进行推理分析?请逐行分析以下数据,给出推理结果:{{input}}这里提供一个分步解决方案,结合。

knightissocool的博客 8008

Vue中使用wangEditor富文本框

在这个示例中,我们首先引入Vue 3的ref函数用于创建响应式数据。然后引入了WangEditor,并在setup函数中初始化了富文本编辑器。在初始化过程中,我们可以配置一些选项,比如图片上传的服务器地址。接着定义了保存内容的方法saveContent,在这个方法中,我们可以获取编辑器的HTML内容并进行保存或其他操作。最后,在组件的mounted钩子函数中调用initEditor方法来初始化编辑器。

lfyyyyy的博客 2524

Altium Designer应用技巧1: 功能模块的复用方法

Altium Designer应用技巧1: 功能模块的复用方法      我们在使用Altium Designer进行电路图设计时,常会遇到功能模块的复用问题,例如我们经常需要将12V以DC-DC的方式转换成5V,这在很多线路板上都会应用到。现在我们普通的做法是,每个板子都重新绘制一遍,像这样DC-DC的电路,很浪费时间。那么如何采用提高工作效率呢?我们可以采取Altium Desi

snmplink的博客 1万+

matlab 点云均值、中值、高斯滤波【2024最新版】

点云均值滤波、中值滤波、高斯滤波的matlab自带函数实现。博客长期更新,本文最近一次更新时间为:2024年11月9日。

点云侠的博客 5258

vue前端富文本框使用(wangeditor富文本框)

a.在组件components内定义文件QuillEditor.vue文件。第二步:创建富文本编辑器组件;我们自己在二次封装一下该组件方便使用。可以直接在要使用页面引入该组件或者全局注册该组件。第一步:使用node引入wangeditor富文本编辑器插件。b.QuillEditor.vue文件代码。

Andy的博客 6126

PY32F406K1CU6 FLASH模拟EEPROM

摘要:本文介绍了基于STM32 FLASH模拟EEPROM的实现方法。头文件flash.h定义了FLASH页大小(256字节)、用户存储区域(4页)及地址范围,提供了等待周期配置和地址校验宏,声明了EEPROM初始化、读写操作等函数接口。源文件flash.c实现了具体功能:配置FLASH等待周期(144MHz需3WS)、页读写擦除操作,以及EEPROM初始化(解锁-擦除-验证-锁定)和缓冲区读写功能。其中写操作采用"读页→更新→擦除→编程"的流程,确保数据安全写入。该方案适用于需要非易失

sam的博客 194

什么是rich text,富文本?富文本有什么优势?

rtf格式是又叫富文本格式或者多文本格式,RTF是Rich Text Format的缩写,意即丰富的文本格式。在rtf文档中可以嵌入图像等文件,RTF是。为了与其他字处理软件兼容而能够保存的文档格式,类似DOC格式(Word文档)的文件,有很好的兼容性。纯文本就像markdown,格式都是用标记符写出来得。1、word这一类就属于富文本,可以加图片、超链接;什么是rich text,富文本?4、纯文本得优势就是,只用关心内容,不用在乎格式。3、富文本得优势就是所见即所得。

Kp0fS的草稿纸 1万+

点云从入门到精通技术详解100篇-基于 CBCT 与口内扫描数据的牙齿点云配准

口扫生成的三维牙模型只包含牙冠结构,容易受到唾液、食物残留等杂质的干扰。像精度,但其扫描成本较高,在公立医院的普及率较低。此外,口扫探入式的体。完整、精确的牙齿信息,有助于医生更好地进行数字化辅助诊疗,提高手术的预。可以表示上颌骨、下颌骨、牙冠以及牙根的位置和形状,但其扫描分辨率较低,精配准前实现粗略的预配准来确定点云间的初始位置,为精配准提供良好的配准。该算法通过计算点对间的距离确定源点云中的某一点在目标点云中的对应。算两点之间的欧氏距离,运算量较大,而且由于算法只考虑点集间的距离而忽略。

getusushu的博客 1640

什么是垂直同步?电脑快速消除屏幕撕裂与提升游戏性能的方法 垂直同步、游戏画面撕裂、游戏优化、VSync、FPS、FreeSync、G-Sync、显卡驱动更新、游戏画质、输入延迟

看这张动图,左边的画面出现了明显“切开”的断层现象,而右边画面非常流畅,没有撕裂。这正是「垂直同步」开关的区别。:每秒生成多少帧图像。比如 60FPS 表示一秒钟显示 60 张图片。刷新率(Refresh Rate):显示器每秒刷新几次画面,单位是赫兹(Hz)。60Hz 表示每秒刷新 60 次。参数说明FPS显卡渲染速度(逻辑帧率)刷新率显示器的显示频率(物理限制)当 FPS 高于刷新率时,显卡渲染的画面来不及被显示器显示,导致撕裂。屏幕撕裂(Screen Tearing)

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1343

富文本编辑器介绍

富文本编辑器,Multi-function Text Editor, 简称 MTE, 是一种可内嵌于浏览器,所见即所得的文本编辑器。功能强大的富文本编辑器可以实现文本编辑、格式设置、排版设置、媒体文件编辑上传、超链接、文本导出、打印等等功能。

月亮的博客 2万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

初探富文本之富文本概述

富文本编辑器通常指的是可以对文字、图片等进行编辑的产品,具有所见即所得的能力。对于Input、Textarea之类标签,他们是支持内容编辑的,但并不支持带格式的文本或者是图片的插入等功能,所以对于这类的需求就需要富文本编辑器来实现。现在的富文本编辑器也已经不仅限于文字和图片,还包括视频、表格、代码块、思维导图、附件、公式、格式刷等等比较复杂的功能。

WindRunnerMax 3096

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

富文本处理

 富文本(Rich Text)或者叫做富文本格式,简单来说就是在文档中可以使用多种格式,比如字体颜色、图片和表格等等。它是与纯文本(Plain Text)相对而言的,比如Windows上的记事本就是纯文本编辑器,而Word就是富文本编辑器。 富文本文档结构 文本块 表格、列表与图片 查找功能 语法高亮与HTML 1 富文本文档结构 在Qt中提供了对富文本处理的支持。Qt中对富文本的处理...

QtHalcon 1万+

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

纯文本,富文本,超文本

纯文本,富文本,超文本

zhwqqqqq的博客 1万+

富文本框编辑与分页

一、富文本框 1.1 由于html中原生的textarea功能太弱,无法完成一些字体,颜色等功能,因此我们在开的时候经常会使用富文本框 UEditor, CKEditor,wangEditor 市面用得比较多的富文本框 使用是的wangEditor,要学习的话可以去看它的官网 -> http://www.wangeditor.com/ 主要是完成文本框的展示 ... 1.2 修...

July_123的博客 3671

21 - 富文本框

{# 引入 tinymce.min.js #}{# 必填 #}})</script></form>

m0_58250910的博客 219

大事件项目37-----富文本编辑器的使用

:https://www.npmjs.com/package/vue-guill-editoryarn add vue-quil1-editor

weixin_54048131的博客 1078

【Qt】富文本框架(一、富文本文档)

表是一种特殊类型的框架,它由许多单元格组成,排列成行和列,每个单元格都可以包含进一步的结构和文本。可以将其他文档元素组合在一起的元素通常是qtexttobject的子类,分为两类:将文本块组合在一起的元素是QTextBlockGroup的子类,将框架和其他元素组合在一起的元素是QTextFrame的子类。块也用于表示列表项。因此,块可以定义自己的字符格式,其中包含关于块级装饰的信息,例如用于列表项的项目符号类型。每个表格单元格都是一个文档元素,具有自己的字符格式,但它也可以包含其他元素,如框架和文本块。

卡钦斯基的博客 1943

Vue3使用富文本框(wangeditor)

2.配置wangeditor组件(src/components/wangeditor.vue)毕业涉及中使用到了富文本框,所以学习使用了wangeditor富文本框,现进行总结。

mfxcyh的博客 4791

2024版最新148款CTF工具整理大全(附下载安装包)含基础环境、Web 安全、加密解密、密码爆破、文件、隐写、逆向、PWN等全套工具

经常会有大学生粉丝朋友私信大白,想通过打CTF比赛镀金,作为进入一线互联网大厂的门票。但是在CTF做题很多的时候都会用到工具,所以在全网苦寻CTF比赛工具安装包!

Libra1313的博客 1万+
上一篇: 【Django 026】利用Pillow生成验证码图片结合session用于登录验证图文详解
下一篇: Centos7命令行修改网卡配置并生效操作详解
T型人小付
博客等级 码龄7年 433粉丝 210原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值