Django之富文本(获取内容,设置内容方式)


Posted in Python onMay 21, 2020

富文本

1、Rich Text Format(RTF)

微软开发的跨平台文档格式,大多数的文字处理软件都能读取和保存RTF文档,其实就是可以添加样式的文档,和HTML有很多相似的地方

图示

Django之富文本(获取内容,设置内容方式)

2、tinymce插件

安装插件

pip install django-tinymce

配置插件

使用

后台管理中

HTMLField

页面中使用

textarea

3、在后台管理中使用

配置settings.py文件

INSTALLED_APPS 添加 tinymce 应用
INSTALLED_APPS = [
  ...
  # 注册富文本应用
  'tinymce',
]

添加默认配置

# 以字典形式配置富文本框架tinymce

# 作用于管理后台中的富文本编辑器

TINYMCE_DEFAULT_CONFIG = {

  # 使用高级主题,备选项还有简单主题
  'theme': 'advanced',
  # 'theme': 'simple',

  # 必须指定富文本编辑器(RTF=rich text format)的宽高
  'width': 800,
  'height': 600,

  # 汉化
  'language': 'zh',

  # 自定义常用的固定样式
  'style_formats': [
    # title=样式名称
    # styles=自定义css样式
    # inline:xxx = 将加样式后的文本放在行内元素中显示
    # block:xxx = 将加样式后的文本放在块级元素中显示
    {'title': 'Bold text', 'inline': 'b'},
    {'title': 'Red text', 'inline': 'span', 'styles': {'color': '#ff0000'}},
    {'title': 'Red header', 'block': 'h1', 'styles': {'color': '#ff0000'}},
    {'title': 'Example 1', 'inline': 'span', 'classes': 'example1'},
    {'title': 'Example 2', 'inline': 'span', 'classes': 'example2'},
    {'title': 'Table styles'},
    {'title': 'Table row 1', 'selector': 'tr', 'classes': 'tablerow1'}
  ],
}

创建模型类

from tinymce.models import HTMLField
class Blog(models.Model):
 sBlog = HTMLField()

注册模型

admin.site.register

4、在普通页面使用

使用文本域盛放内容

<form method='post' action='url'>
<textarea></textarea>
</form>

添加脚本

<script src='/static/tiny_mce/tiny_mce.js'></script>
 <script>
   tinyMCE.init({
     'mode': 'textareas',
     'theme': 'simple',
     'theme': 'advanced',
     'width': 800,
     'height': 600,
     'language': 'zh',
     'style_formats': [
       {'title': 'Bold text', 'inline': 'b'},
       {'title': 'Red text', 'inline': 'span', 'styles': {'color': '#ff0000'}},
       {'title': 'Red header', 'block': 'h1', 'styles': {'color': '#ff0000'}},
       {'title': 'Example 1', 'inline': 'span', 'classes': 'example1'},
       {'title': 'Example 2', 'inline': 'span', 'classes': 'example2'},
       {'title': 'Table styles'},
       {'title': 'Table row 1', 'selector': 'tr', 'classes': 'tablerow1'}
     ],
   })
 </script>

本质上还是使用html的样式。

5、利用js获取富文本内容和设置内容给富文本

//editorId是富文本的id
function SetTinyMceContent(editorId, content) {
  //给富文本编辑器设置内容
  tinyMCE.getInstanceById(editorId).getBody().innerHTML = content;
  //获取富文本编辑器的内容
  var con = tinyMCE.getInstanceById(editorId).getBody().innerHTML;
}

补充知识:Django中Form的Textarea字段

开始以为是这个样子:

class BlogForm(forms.Form): 
  title  = forms.CharField(required = True) 
  content = forms.Textarea()

查看文档发现是:

from django import forms 
class BlogForm(forms.Form): 
  title  = forms.CharField(required = True) 
  content = forms.CharField(widget=forms.Textarea)

以上这篇Django之富文本(获取内容,设置内容方式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 多进程通信模块的简单实现
Feb 20 Python
python实现Floyd算法
Jan 03 Python
python版学生管理系统
Jan 10 Python
Python排序算法之选择排序定义与用法示例
Apr 29 Python
Python里字典的基本用法(包括嵌套字典)
Feb 27 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
Python对wav文件的重采样实例
Feb 25 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
pandas中read_csv、rolling、expanding用法详解
Apr 21 Python
Python捕获异常堆栈信息的几种方法(小结)
May 18 Python
Python3使用Selenium获取session和token方法详解
Feb 16 Python
Python基于百度API识别并提取图片中文字
Jun 27 Python
使用Python防止SQL注入攻击的实现示例
May 21 #Python
Django的ListView超详细用法(含分页paginate)
May 21 #Python
Django中FilePathField字段的用法
May 21 #Python
Django 解决上传文件时,request.FILES为空的问题
May 20 #Python
使用 django orm 写 exists 条件过滤实例
May 20 #Python
django 解决自定义序列化返回处理数据为null的问题
May 20 #Python
python实现126邮箱发送邮件
May 20 #Python
You might like
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
jQuery写的日历(包括日历的样式及功能)
2013/04/23 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
2013/07/10 Javascript
JQ获取动态加载的图片大小的正确方法分享
2013/11/08 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
2014/09/25 Javascript
微信JSSDK上传图片
2015/08/23 Javascript
创建基于Bootstrap的下拉菜单的DropDownList的JQuery插件
2016/06/02 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
JavaScript学习笔记整理_关于表达式和语句
2016/09/19 Javascript
微信小程序中实现一对多发消息详解及实例代码
2017/02/14 Javascript
angularjs ui-router中路由的二级嵌套
2017/03/10 Javascript
关于Ajax的原理以及代码封装详解
2017/09/08 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
nodejs连接mysql数据库及基本知识点详解
2018/03/20 NodeJs
jQuery length 和 size()区别总结
2018/04/26 jQuery
微信小程序实现红包雨功能
2018/07/11 Javascript
js前端面试之同步与异步问题详解
2019/04/03 Javascript
vue+iview框架实现左侧动态菜单功能的示例代码
2020/07/23 Javascript
[52:02]完美世界DOTA2联赛PWL S2 FTD.C vs SZ 第一场 11.27
2020/11/30 DOTA
跟老齐学Python之用while来循环
2014/10/02 Python
python实现计算倒数的方法
2015/07/11 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
在Python中使用Neo4j的方法
2019/03/14 Python
python os模块简单应用示例
2019/05/23 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
阿迪达斯希腊官方网上商店:adidas希腊
2019/04/06 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
授权委托书样本
2014/09/25 职场文书
python自动化之如何利用allure生成测试报告
2021/05/02 Python
MySQL表类型 存储引擎 的选择
2021/11/11 MySQL
python 详解turtle画爱心代码
2022/02/15 Python
mongoDB数据库索引快速入门指南
2022/03/23 MongoDB