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使用自定义user-agent抓取网页的方法
Apr 15 Python
python编码总结(编码类型、格式、转码)
Jul 01 Python
Python冒泡排序注意要点实例详解
Sep 09 Python
简单谈谈Python中的反转字符串问题
Oct 24 Python
python基础教程之匿名函数lambda
Jan 17 Python
Pycharm设置界面全黑的方法
May 23 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
Python正则表达式和re库知识点总结
Feb 11 Python
使用celery和Django处理异步任务的流程分析
Feb 19 Python
浅谈keras保存模型中的save()和save_weights()区别
May 21 Python
详解torch.Tensor的4种乘法
Sep 03 Python
学会迭代器设计模式,帮你大幅提升python性能
Jan 03 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打造属于自己的MVC框架
2012/03/07 PHP
php 操作数组(合并,拆分,追加,查找,删除等)
2012/07/20 PHP
javascript 播放器 控制
2007/01/22 Javascript
基于jquery的loading 加载提示效果实现代码
2011/09/01 Javascript
js中对象的声明方式以及数组的一些用法示例
2013/12/11 Javascript
JavaScript中的toLocaleLowerCase()方法使用详解
2015/06/06 Javascript
JavaScript的代码编写格式规范指南
2015/12/07 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
ionic 自定义弹框效果
2017/06/27 Javascript
JavaScript实现跟随滚动缓冲运动广告框
2017/07/15 Javascript
vue + element-ui实现简洁的导入导出功能
2017/12/22 Javascript
webpack 模块热替换原理
2018/04/09 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
利用es6 new.target来对模拟抽象类的方法
2019/05/10 Javascript
JavaScript如何获取一个元素的样式信息
2019/07/29 Javascript
vue输入节流,避免实时请求接口的实例代码
2019/10/30 Javascript
js实现弹窗效果
2020/08/09 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
解决Django模板无法使用perms变量问题的方法
2017/09/10 Python
python编程羊车门问题代码示例
2017/10/25 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
python将print输出的信息保留到日志文件中
2019/09/27 Python
Python requests模块cookie实例解析
2020/04/14 Python
Python matplotlib绘制图形实例(包括点,曲线,注释和箭头)
2020/04/17 Python
英国著名的小众美容品牌网站:Alyaka
2017/08/08 全球购物
英国演唱会订票网站:Ticket Selection
2018/03/27 全球购物
Sephora丝芙兰印尼官方网站:购买化妆品和护肤品
2018/07/02 全球购物
密封类可以有虚函数吗
2014/08/11 面试题
审计主管岗位职责
2014/01/31 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
加强作风建设心得体会
2014/10/22 职场文书
安全隐患整改报告
2014/11/06 职场文书
现实表现材料范文
2014/12/23 职场文书
2015小学教师年度工作总结
2015/05/12 职场文书
Python os和os.path模块详情
2022/04/02 Python