Django之富文本(获取内容,设置内容方式)
富文本
1、Rich Text Format(RTF)
微软开发的跨平台文档格式,大多数的文字处理软件都能读取和保存RTF文档,其实就是可以添加样式的文档,和HTML有很多相似的地方
图示
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之富文本(获取内容,设置内容方式)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
以上是 Django之富文本(获取内容,设置内容方式) 的全部内容, 来源链接: utcz.com/z/311953.html