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统计列表中的重复项出现的次数的方法
Aug 18 Python
详解在Python中处理异常的教程
May 24 Python
Python 中pandas.read_excel详细介绍
Jun 23 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
Python 获得13位unix时间戳的方法
Oct 20 Python
Windows下anaconda安装第三方包的方法小结(tensorflow、gensim为例)
Apr 05 Python
使用anaconda的pip安装第三方python包的操作步骤
Jun 11 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
wxPython修改文本框颜色过程解析
Feb 14 Python
python中的random模块和相关函数详解
Apr 22 Python
如何Python使用re模块实现okenizer
Apr 30 Python
 python中的元类metaclass详情
May 30 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
第1次亲密接触PHP5(2)
2006/10/09 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
php数组索引与键值操作技巧实例分析
2015/06/24 PHP
详解在YII2框架中使用UEditor编辑器发布文章
2018/11/02 PHP
用函数式编程技术编写优美的 JavaScript
2006/11/25 Javascript
ExtJs中简单的登录界面制作方法
2010/08/19 Javascript
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
JS常用表单验证方法总结
2014/05/22 Javascript
javascript将浮点数转换成整数的三个方法
2014/06/23 Javascript
JavaScript动态改变div属性的实现方法
2015/07/22 Javascript
JavaScipt中栈的实现方法
2016/02/17 Javascript
js实现贪吃蛇小游戏(容易理解)
2017/01/22 Javascript
node.js平台下的mysql数据库配置及连接
2017/03/31 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
python中urllib模块用法实例详解
2014/11/19 Python
基于python实现微信模板消息
2015/12/21 Python
小米5s微信跳一跳小程序python源码
2018/01/08 Python
python如何实现内容写在图片上
2018/03/23 Python
Python + selenium + crontab实现每日定时自动打卡功能
2020/03/31 Python
css3发光搜索表单分享
2014/04/11 HTML / CSS
英国和世界各地鲜花速递专家:Arena Flowers
2018/02/10 全球购物
印度手工编织服装和家居用品商店:Fabindi
2019/10/07 全球购物
应用心理学个人的求职信
2013/12/08 职场文书
汽车销售顾问求职自荐信
2014/01/01 职场文书
教师试用期自我鉴定
2014/02/12 职场文书
小学生环保倡议书
2014/05/15 职场文书
2014年小学教师工作自我评价
2014/09/22 职场文书
公安机关正风肃纪剖析材料
2014/10/10 职场文书
介绍信的写法
2015/01/31 职场文书
旷工辞退通知书
2015/04/17 职场文书
Python中非常使用的6种基本变量的操作与技巧
2022/03/22 Python
python缺失值填充方法示例代码
2022/12/24 Python