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

 更新时间:2018年07月31日 12:02:55   作者:站在两个世界的边缘  
这篇文章主要介绍了Django框架使用富文本编辑器Uedit的方法,结合实例形式分析了Django框架中使用Uedit的安装、配置方法及Uedit相关插件制作方法,需要的朋友可以参考下

本文实例讲述了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. &nbsp;&160#;不断行的空白(1个字符宽度)

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

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

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

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

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

相关文章

  • python手写均值滤波

    python手写均值滤波

    这篇文章主要为大家详细介绍了python手写均值滤波的相关代码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02
  • python实现飞机大战

    python实现飞机大战

    这篇文章主要为大家详细介绍了python实现飞机大战游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • 如何基于python实现不邻接植花

    如何基于python实现不邻接植花

    这篇文章主要介绍了如何基于python实现不邻接植花,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 一篇文章带你搞定Python多进程

    一篇文章带你搞定Python多进程

    Python中的多进程是通过multiprocessing包来实现的,和多线程的threading.Thread差不多,它可以利用multiprocessing.Process对象来创建一个进程对象。本文将带你深入了解Python多线程,需要的可以参考一下
    2022-01-01
  • python实现给字典添加条目的方法

    python实现给字典添加条目的方法

    这篇文章主要介绍了python实现给字典添加条目的方法,是比较实用的字典操作技巧,实例备有简单的注释,需要的朋友可以参考下
    2014-09-09
  • Python numpy大矩阵运算内存不足如何解决

    Python numpy大矩阵运算内存不足如何解决

    这篇文章主要介绍了Python numpy大矩阵运算内存不足如何解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Python中一些深不见底的“坑”

    Python中一些深不见底的“坑”

    这篇文章主要给大家介绍了关于Python中一些深不见底的“坑”,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • Python读写csv文件的超详细步骤

    Python读写csv文件的超详细步骤

    python提供了大量的库,可以非常方便的进行各种操作,下面这篇文章主要给大家介绍了关于Python读写csv文件的超详细步骤,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • python实现ipsec开权限实例

    python实现ipsec开权限实例

    这篇文章主要介绍了python实现ipsec开权限的方法,弥补了windows自带的命令行工具netsh ipsec static add filter不支持批量添加及添加重复规则的不足,非常具有实用价值,需要的朋友可以参考下
    2014-11-11
  • 聊聊Python中的@符号是什么意思

    聊聊Python中的@符号是什么意思

    @符号用做函数的修饰符,可以在模块或者类的定义层内对函数进行修饰,下面这篇文章主要给大家介绍了关于Python中@符号是什么意思的相关资料,需要的朋友可以参考下
    2021-09-09

最新评论