Django框架使用富文本编辑器Uedit的方法分析


Posted in Python onJuly 31, 2018

本文实例讲述了Django框架使用富文本编辑器Uedit的方法。分享给大家供大家参考,具体如下:

Uedit是百度一款非常好用的富文本编辑器

一、安装及基本配置

官方GitHub(有详细的安装使用教程):https://github.com/zhangfisher/DjangoUeditor

1. settings.py

INSTALLED_APPS = [
  ...
  'DjangoUeditor',
  ...
]

2. 配置urls

from django.conf.urls import url, include
urlpatterns = [
# 富文本相关url
  url(r'^ueditor/', include('DjangoUeditor.urls')),
]

3. 字段信息

在需要使用富文本的字段所在的models.py中

from DjangoUeditor.models import UEditorField
class Articles(models.Model):
  ...
  content = UEditorField(width=1200, height=600, imagePath="article/ueditor/",
              filePath="article/ueditor/",verbose_name=u"文章内容")
  ...

注意,在要使用ueditor的字段所在adminx.py的类中,添加

# 这样就指定了course的detail字段使用ueditor富文本编辑器
class ArticlesAdmin(object):
  ...
  style_fields = {"content":"ueditor"}

二、Ueditor插件制作

1. 插件代码

在extra_apps.xadmin.plugins中新建ueditor.py

import xadmin
from xadmin.views import BaseAdminPlugin, CreateAdminView, ModelFormAdminView, UpdateAdminView
from DjangoUeditor.models import UEditorField
from DjangoUeditor.widgets import UEditorWidget
from django.conf import settings
class XadminUEditorWidget(UEditorWidget):
  def __init__(self, **kwargs):
    self.ueditor_options=kwargs
    self.Media.js = None
    super(XadminUEditorWidget, self).__init__(kwargs)
class UeditorPlugin(BaseAdminPlugin):
  def get_field_style(self, attrs, db_field, style, **kwargs):
    if style == 'ueditor':
      if isinstance(db_field, UEditorField):
        widget = db_field.formfield().widget
        param = {}
        param.update(widget.ueditor_settings)
        param.update(widget.attrs)
        return {'widget': XadminUEditorWidget(**param)}
    return attrs
  def block_extrahead(self, context, nodes):
    js = '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.config.js")
    js += '<script type="text/javascript" src="%s"></script>' % (settings.STATIC_URL + "ueditor/ueditor.all.min.js")
    nodes.append(js)
xadmin.site.register_plugin(UeditorPlugin, UpdateAdminView)
xadmin.site.register_plugin(UeditorPlugin, CreateAdminView)

2. xadmin中注册插件

在extra_apps.xadmin.plugins.__init__.py中添加

PLUGINS = (
  ...
  'ueditor',
)

友情提醒

在Django中使用富文本编辑器

在HTML页面中,Django处于安全考虑,将文本内容默认转义,我们需要关闭

来正常输出我们的文章

{% autoescape off %}
{{ article.abstract }}
{% endautoescape %}

记录一下,空格的转义字符分为如下几种:

1.  &160#;不断行的空白(1个字符宽度)

2. &8194#;半个空白(1个字符宽度)

3. &8195#;一个空白(2个字符宽度)

4. &8201#;窄空白(小于1个字符宽度)

平时一般用的是 但是在中文中也许有时候更适合用

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
基于python中的TCP及UDP(详解)
Nov 06 Python
python定时利用QQ邮件发送天气预报的实例
Nov 17 Python
在Pycharm中项目解释器与环境变量的设置方法
Oct 29 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
调试Django时打印SQL语句的日志代码实例
Sep 12 Python
Python 文件数据读写的具体实现
Jan 24 Python
Python函数基本使用原理详解
Mar 19 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
Jun 03 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
Windows下python3.6.4安装教程
Jul 31 #Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 #Python
win8下python3.4安装和环境配置图文教程
Jul 31 #Python
Win8.1下安装Python3.6提示0x80240017错误的解决方法
Jul 31 #Python
Win8下python3.5.1安装教程
Jul 29 #Python
win7下python3.6安装配置方法图文教程
Jul 31 #Python
win7+Python3.5下scrapy的安装方法
Jul 31 #Python
You might like
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
2011/06/16 PHP
PHP动态页生成静态页的3种常用方法
2014/11/13 PHP
PHP+Mysql+jQuery查询和列表框选择操作实例讲解
2015/10/22 PHP
PHP7 参数处理机制修改
2021/03/09 PHP
JavaScript 实现简单的倒计时弹窗DEMO附图
2014/03/05 Javascript
JavaScript实现的双向跨域插件分享
2015/01/31 Javascript
JS产生随机数的用法小结
2016/12/10 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
全面解析vue中的数据双向绑定
2017/05/10 Javascript
jQuery 实现图片的依次加载图片功能
2017/07/06 jQuery
使用JavaScript开发跨平台的桌面应用详解
2017/07/27 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
2018/09/13 Javascript
Makefile/cmake/node-gyp中区分判断不同平台的方法
2018/12/18 Javascript
javascript实现导航栏分页效果
2019/06/27 Javascript
6种JavaScript继承方式及优缺点(小结)
2020/02/06 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
python设置检查点简单实现代码
2014/07/01 Python
Python深入学习之装饰器
2014/08/31 Python
Python3.5 处理文本txt,删除不需要的行方法
2018/12/10 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
Html5嵌入钉钉的实现示例
2020/06/04 HTML / CSS
新西兰床上用品和家居用品购物网站:Adairs
2018/04/27 全球购物
幼儿教师自我鉴定
2013/11/02 职场文书
计算机专业推荐信范文
2013/11/27 职场文书
职业生涯规划书基本格式
2014/01/06 职场文书
常务副总经理任命书
2014/06/05 职场文书
销售竞赛活动方案
2014/08/23 职场文书
纪念九一八事变83周年国旗下讲话稿
2014/09/15 职场文书
解除劳动合同证明书
2014/09/26 职场文书
Vue中插槽slot的使用方法与应用场景详析
2021/06/08 Vue.js
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis