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迭代器定义与简单用法分析
Apr 30 Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 Python
pyqt5与matplotlib的完美结合实例
Jun 21 Python
python中比较两个列表的实例方法
Jul 04 Python
python增加图像对比度的方法
Jul 12 Python
django基础学习之send_mail功能
Aug 07 Python
python 进程的几种创建方式详解
Aug 29 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
Python:合并两个numpy矩阵的实现
Dec 02 Python
python获取依赖包和安装依赖包教程
Feb 13 Python
Python接口测试文件上传实例解析
May 22 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
非常不错的MySQL优化的8条经验
2008/03/24 PHP
小程序微信支付功能配置方法示例详解【基于thinkPHP】
2019/05/05 PHP
Laravel框架验证码类用法实例分析
2019/09/11 PHP
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
JS delegate与live浅析
2013/12/21 Javascript
Windows系统下使用Sublime搭建nodejs环境
2015/04/13 NodeJs
基于jquery实现图片上传本地预览功能
2016/01/08 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
结合代码图文讲解JavaScript中的作用域与作用域链
2016/07/05 Javascript
JavaScript中的this引用(推荐)
2016/08/05 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
js实现各浏览器全屏代码实例
2018/07/03 Javascript
JavaScript中filter的用法实例分析
2019/02/27 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
python调用tcpdump抓包过滤的方法
2018/07/18 Python
Flask和Django框架中自定义模型类的表名、父类相关问题分析
2018/07/19 Python
Pandas_cum累积计算和rolling滚动计算的用法详解
2019/07/04 Python
python对矩阵进行转置的2种处理方法
2019/07/17 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python3 循环读取excel文件并写入json操作
2020/07/14 Python
HTML5 Web存储方式的localStorage和sessionStorage进行数据本地存储案例应用
2012/12/09 HTML / CSS
GAP美国官网:美国休闲时尚品牌
2016/08/26 全球购物
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
网吧收银员岗位职责
2013/12/14 职场文书
超市后勤自我鉴定
2014/01/17 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
2015年英语教研组工作总结
2015/05/23 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python
vue组件冲突之引用另一个组件出现组件不显示的问题
2022/04/13 Vue.js
Oracle锁表解决方法的详细记录
2022/06/05 Oracle