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 相关文章推荐
Python 命令行参数sys.argv
Sep 06 Python
python二分法实现实例
Nov 21 Python
利用python画一颗心的方法示例
Jan 31 Python
django 创建过滤器的实例详解
Aug 14 Python
Python语言描述随机梯度下降法
Jan 04 Python
python实现三维拟合的方法
Dec 29 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
Feb 13 Python
Python画图高斯分布的示例
Jul 10 Python
Django 缓存配置Redis使用详解
Jul 23 Python
Python计算公交发车时间的完整代码
Feb 12 Python
Python切割图片成九宫格的示例代码
Mar 10 Python
keras K.function获取某层的输出操作
Jun 29 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代码飞起来的40条小技巧(提升php效率)
2010/04/12 PHP
Yii2使用自带的UploadedFile实现的文件上传
2016/06/20 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
PHP利用pdo_odbc实现连接数据库示例【基于ThinkPHP5.1搭建的项目】
2019/05/13 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
javascript replace()正则替换实现代码
2010/02/26 Javascript
jquery 如何动态添加、删除class样式方法介绍
2012/11/07 Javascript
JavaScript中的匀速运动和变速(缓冲)运动详细介绍
2012/11/11 Javascript
初步使用Node连接Mysql数据库
2016/03/03 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
JavaScript 身份证号有效验证详解及实例代码
2016/10/20 Javascript
Bootstrap源码解读下拉菜单(4)
2016/12/23 Javascript
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
jQuery实现在HTML文档加载完毕后自动执行某个事件的方法
2017/05/08 jQuery
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
微信小程序自定义多选事件的实现代码
2018/05/17 Javascript
JavaScript代码异常监控实现过程详解
2020/02/17 Javascript
解决ant Design中this.props.form.validateFields未执行的问题
2020/10/27 Javascript
Python中断言Assertion的一些改进方案
2016/10/27 Python
神经网络理论基础及Python实现详解
2017/12/15 Python
python的pip安装以及使用教程
2018/09/18 Python
python实现比较类的两个instance(对象)是否相等的方法分析
2019/06/26 Python
解决python3 requests headers参数不能有中文的问题
2019/08/21 Python
Python用input输入列表的实例代码
2020/02/07 Python
html5中为audio标签增加停止按钮动作实现方法
2013/01/04 HTML / CSS
俄罗斯优惠券网站:BIGLION
2017/05/21 全球购物
盛大二次面试题
2016/11/18 面试题
写好自荐信的要点
2013/11/06 职场文书
节约能源标语
2014/06/17 职场文书
我的大学四年规划书范文2014
2014/09/26 职场文书
拾金不昧感谢信
2015/01/21 职场文书
2015感人爱情寄语
2015/02/26 职场文书
酒店前台岗位职责
2015/04/16 职场文书
班主任寄语2016
2015/12/04 职场文书
《玩出了名堂》教学反思
2016/02/17 职场文书