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线程详解
Jun 24 Python
python基础学习之如何对元组各个元素进行命名详解
Jul 12 Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 Python
selenium使用chrome浏览器测试(附chromedriver与chrome的对应关系表)
Nov 29 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
python实现录屏功能(亲测好用)
Mar 02 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
Tensorflow tf.nn.depthwise_conv2d如何实现深度卷积的
Apr 20 Python
Opencv图像处理:如何判断图片里某个颜色值占的比例
Jun 03 Python
python 将html转换为pdf的几种方法
Dec 29 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
Jan 29 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
Feb 03 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中检查PHP文件是否有语法错误的方法
2009/12/23 PHP
解析php类的注册与自动加载
2013/07/05 PHP
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
2014/05/15 PHP
php常用的安全过滤函数集锦
2014/10/09 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
用jquery来定位
2007/02/20 Javascript
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
Three.js源码阅读笔记(物体是如何组织的)
2012/12/27 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
jQuery使用andSelf()来包含之前的选择集
2014/05/19 Javascript
js实现仿百度瀑布流的方法
2015/02/05 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
js方法数据验证的简单实例
2016/09/17 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
vue生成文件本地打开查看效果的实例
2018/09/06 Javascript
NodeJs 实现简单WebSocket即时通讯的示例代码
2019/08/05 NodeJs
解决Vue在Tomcat8下部署页面不加载的问题
2019/11/12 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
javascript实现固定侧边栏
2021/02/09 Javascript
[45:14]Optic vs VP 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
linux 下实现python多版本安装实践
2014/11/18 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
TensorFlow实现Batch Normalization
2018/03/08 Python
python中将正则过滤的内容输出写入到文件中的实例
2018/10/21 Python
Python字典fromkeys()方法使用代码实例
2020/07/20 Python
HTML5拍照和摄像机功能实战详解
2019/01/24 HTML / CSS
HTML5录音实践总结(Preact)
2020/05/07 HTML / CSS
美国运动鞋和运动服零售商:Footaction
2017/04/07 全球购物
安全演讲稿大全
2014/05/09 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
个人简历自我评价怎么写
2015/03/10 职场文书
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers