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 if not in 多条件判断代码
Sep 21 Python
Python网络爬虫项目:内容提取器的定义
Oct 25 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
python实现五子棋小游戏
Mar 25 Python
Python3中的最大整数和最大浮点数实例
Jul 09 Python
django-rest-framework解析请求参数过程详解
Jul 18 Python
Python实现微信好友的数据分析
Dec 16 Python
Tensorflow获取张量Tensor的具体维数实例
Jan 19 Python
你应该知道的Python3.6、3.7、3.8新特性小结
May 12 Python
在tensorflow下利用plt画论文中loss,acc等曲线图实例
Jun 15 Python
django和flask哪个值得研究学习
Jul 31 Python
Python获取字典中某个key的value
Apr 13 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
使用PHP socke 向指定页面提交数据
2008/07/23 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
2012/08/22 PHP
Linux操作系统安装LAMP环境
2015/06/26 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
Javascript 解疑
2009/11/11 Javascript
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
javascript限制文本框只允许输入数字(曾经与现在的方法对比)
2013/01/18 Javascript
IE6下javasc#ipt:void(0) 无效的解决方法
2013/12/23 Javascript
jQuery中bind()方法用法实例
2015/01/19 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
js判断登陆用户名及密码是否为空的简单实例
2016/05/16 Javascript
js实现日历的简单算法
2017/01/24 Javascript
vue 实现类似淘宝星级评分的示例
2018/03/01 Javascript
js input输入百分号保存数据库失败的解决方法
2018/05/26 Javascript
详解用vue2.x版本+adminLTE开源框架搭建后台应用模版
2019/03/15 Javascript
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
layui输入框中只允许输入整数的实现方法
2019/09/18 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
PyQt5每天必学之弹出消息框
2018/04/19 Python
在python中利用numpy求解多项式以及多项式拟合的方法
2019/07/03 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
2019/09/03 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
python线程里哪种模块比较适合
2020/08/02 Python
python操作redis数据库的三种方法
2020/09/10 Python
护士自我介绍信
2014/01/13 职场文书
2015元旦晚会主持词(开场白+结束语)
2014/12/14 职场文书
2015年幼师工作总结
2015/04/28 职场文书
农村婚庆主持词
2015/06/29 职场文书
中国文明网2015年“向国旗敬礼”活动网上签名寄语
2015/09/24 职场文书
新西兰:最新留学学习计划书写作指南
2019/07/15 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
MySQL中一条update语句是如何执行的
2022/03/16 MySQL