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从MP3文件获取id3的方法
Jun 15 Python
如何用Python合并lmdb文件
Jul 02 Python
Python计算开方、立方、圆周率,精确到小数点后任意位的方法
Jul 17 Python
Python OpenCV对本地视频文件进行分帧保存的实例
Jan 08 Python
python 字典操作提取key,value的方法
Jun 26 Python
python程序文件扩展名知识点详解
Feb 27 Python
Python collections.defaultdict模块用法详解
Jun 18 Python
Python基于xlutils修改表格内容过程解析
Jul 28 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python批量修改交换机密码的示例
Sep 22 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 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 url路由入门实例
2014/04/23 PHP
php实现批量修改文件名称的方法
2016/07/23 PHP
php使用curl详细解析及问题汇总
2016/08/11 PHP
PHP实现批量删除(封装)
2017/04/28 PHP
DOM 脚本编程中的兄弟节点
2009/10/31 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
2015/03/09 Javascript
JS实现的数组全排列输出算法
2015/03/19 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
js中通过getElementsByName访问name集合对象的方法
2016/10/31 Javascript
BootStrap Table后台分页时前台删除最后一页所有数据refresh刷新后无数据问题
2016/12/28 Javascript
Nodejs中使用captchapng模块生成图片验证码
2017/05/18 NodeJs
微信小程序通过保存图片分享到朋友圈功能
2018/05/24 Javascript
Javascript实现异步编程的过程
2018/06/18 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
[27:28]Ti4 冒泡赛第二天 iG vs NEWBEE 1
2014/07/15 DOTA
python单链表实现代码实例
2013/11/21 Python
Python基于opencv调用摄像头获取个人图片的实现方法
2019/02/21 Python
基于python的socket实现单机五子棋到双人对战
2020/03/24 Python
django删除表重建的实现方法
2019/08/28 Python
Python Pandas 对列/行进行选择,增加,删除操作
2020/05/17 Python
Python实现扫码工具的示例代码
2020/10/09 Python
用Python进行websocket接口测试
2020/10/16 Python
python 批量下载bilibili视频的gui程序
2020/11/20 Python
有关HTML5中背景音乐的自动播放功能
2017/10/16 HTML / CSS
斯德哥尔摩通票:Stockholm Pass
2018/01/09 全球购物
在线购买世界上最好的酒:BoozeBud
2018/06/07 全球购物
Gretna Green中文官网:苏格兰格林小镇
2019/10/16 全球购物
linux下进程间通信的方式
2013/01/23 面试题
销售找工作求职信
2013/12/20 职场文书
监督检查工作方案
2014/05/28 职场文书
项目经理任命书
2014/06/04 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
禁毒心得体会范文
2016/01/15 职场文书
85句关于理想的名言警句大全
2019/08/22 职场文书