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中的is和id用法分析
Jan 26 Python
Python实现的Google IP 可用性检测脚本
Apr 23 Python
Python实现计算文件夹下.h和.cpp文件的总行数
Apr 23 Python
详谈python http长连接客户端
Jun 12 Python
利用django如何解析用户上传的excel文件
Jul 24 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
基于Django与ajax之间的json传输方法
May 29 Python
基于python分析你的上网行为 看看你平时上网都在干嘛
Aug 13 Python
Python PO设计模式的具体使用
Aug 16 Python
Python关于反射的实例代码分享
Feb 20 Python
使用matplotlib的pyplot模块绘图的实现示例
Jul 12 Python
python中turtle库的简单使用教程
Nov 11 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实现图象锐化代码
2007/06/14 PHP
php curl 伪造IP来源的实例代码
2012/11/01 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
2012/11/07 PHP
中高级PHP程序员应该掌握哪些技术?
2016/09/23 PHP
PHP HTTP 认证实例详解
2016/11/03 PHP
老生常谈php中传统验证与thinkphp框架(必看篇)
2017/06/10 PHP
PHP实现基于图的深度优先遍历输出1,2,3...n的全排列功能
2017/11/10 PHP
Extjs4 GridPanel的主要配置参数详细介绍
2013/04/18 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
使用 jQuery.ajax 上传带文件的表单遇到的问题
2016/10/31 Javascript
详解Vue快速零配置的打包工具——parcel
2018/01/16 Javascript
jQuery 实现批量提交表格多行数据的方法
2018/08/09 jQuery
vue移动端弹框组件的实例
2018/09/25 Javascript
layer弹出框确定前验证:弹出消息框的方法(弹出两个layer)
2019/09/21 Javascript
微信小程序获取当前位置和城市名
2019/11/13 Javascript
使用Vue+Django+Ant Design做一个留言评论模块的示例代码
2020/06/01 Javascript
Vue scoped及deep使用方法解析
2020/08/01 Javascript
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
2016/07/02 Python
wxPython的安装图文教程(Windows)
2017/12/28 Python
Python实现的本地文件搜索功能示例【测试可用】
2018/05/30 Python
python对html过滤处理的方法
2018/10/21 Python
Python os.rename() 重命名目录和文件的示例
2018/10/25 Python
python实现在函数中修改变量值的方法
2019/07/16 Python
css3弹性盒模型实例介绍
2013/05/27 HTML / CSS
微信浏览器左上角返回按钮拦截功能
2017/11/21 HTML / CSS
HTML5 Canvas渐进填充与透明实现图像的Mask效果
2013/07/11 HTML / CSS
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
法国一家芭蕾舞鞋公司:Repetto
2018/11/12 全球购物
关于打架的检讨书
2014/01/17 职场文书
2014年党员自我剖析材料
2014/10/07 职场文书
2015年健康教育工作总结
2015/04/10 职场文书
爱国教育主题班会
2015/08/14 职场文书
2019辞职报告范本3篇!
2019/07/23 职场文书
创业计划书之少年玩具店
2019/09/05 职场文书
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS