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爬虫之抓取百度贴吧代码分享
Nov 06 Python
详解K-means算法在Python中的实现
Dec 05 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
用Python读取几十万行文本数据
Dec 24 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
python 默认参数相关知识详解
Sep 18 Python
什么是python的必选参数
Jun 21 Python
Pycharm连接gitlab实现过程图解
Sep 01 Python
15个Pythonic的代码示例(值得收藏)
Oct 29 Python
python 实现简易的记事本
Nov 30 Python
Python实现给PDF添加水印的方法
Jan 25 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计算排列组合的方法
2013/11/13 PHP
PHP+MYSQL中文乱码问题
2015/07/01 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
动态加载js文件 document.createElement
2006/10/14 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
2009/06/23 Javascript
从jQuery.camelCase()学习string.replace() 函数学习
2011/09/13 Javascript
nodejs入门详解(多篇文章结合)
2012/03/07 NodeJs
input输入框鼠标焦点提示信息
2015/03/17 Javascript
轻量级javascript 框架Backbone使用指南
2015/07/24 Javascript
javascript实现动态统计图开发实例
2015/11/21 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
angular.js+node.js实现下载图片处理详解
2017/03/31 Javascript
jQuery Json数据格式排版高亮插件json-viewer.js使用方法详解
2017/06/12 jQuery
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python学习小技巧之列表项的拼接
2017/05/20 Python
python shell根据ip获取主机名代码示例
2017/11/25 Python
Python爬取个人微信朋友信息操作示例
2018/08/03 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
python 成功引入包但无法正常调用的解决
2020/03/09 Python
八年级音乐教学反思
2014/01/09 职场文书
物流专业大学生职业生涯规划书范文
2014/01/15 职场文书
校园歌手大赛策划书
2014/01/17 职场文书
通信研究生自荐信
2014/02/01 职场文书
运动会跳远加油稿
2014/02/20 职场文书
《最大的麦穗》教学反思
2014/04/17 职场文书
应聘英语教师求职信
2014/04/24 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
年终工作总结范文2014
2014/11/27 职场文书
2014社区健康教育工作总结
2014/12/16 职场文书
爱国主义影片观后感
2015/06/18 职场文书
女性健康讲座主持词
2015/07/04 职场文书
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang