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 time模块详解(常用函数实例讲解,非常好)
Apr 24 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Python利用openpyxl库遍历Sheet的实例
May 03 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
python广度优先搜索得到两点间最短路径
Jan 17 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
python之array赋值技巧分享
Nov 28 Python
Pytorch 实现计算分类器准确率(总分类及子分类)
Jan 18 Python
python标准库os库的函数介绍
Feb 12 Python
浅谈pytorch池化maxpool2D注意事项
Feb 18 Python
BeautifulSoup中find和find_all的使用详解
Dec 07 Python
Python实现小黑屋游戏的完整实例
Jan 06 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下创建字段并设置主键的php代码
2010/05/16 PHP
WordPress中获取页面链接和标题的相关PHP函数用法解析
2015/12/17 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
Jsonp 跨域的原理以及Jquery的解决方案
2011/06/27 Javascript
Javascript学习笔记之 对象篇(三) : hasOwnProperty
2014/06/24 Javascript
js实现iframe跨页面调用函数的方法
2014/12/13 Javascript
javascript 数组操作详解
2015/01/29 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
nodejs加密Crypto的实例代码
2016/07/07 NodeJs
详解js中的apply与call的用法
2016/07/30 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
layui前段框架日期控件使用方法详解
2017/05/19 Javascript
原生JS写Ajax的请求函数功能
2017/12/22 Javascript
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
深入解析koa之异步回调处理
2019/06/17 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
JavaScript实现的联动菜单特效示例
2019/07/08 Javascript
vue项目中使用particles实现粒子背景效果及遇到的坑(按钮没有点击响应)
2020/02/11 Javascript
jquery实现鼠标悬浮弹出气泡提示框
2020/12/23 jQuery
深入解析Python中的urllib2模块
2015/11/13 Python
python3新特性函数注释Function Annotations用法分析
2016/07/28 Python
python入门基础之用户输入与模块初认识
2016/11/14 Python
Python Selenium 之关闭窗口close与quit的方法
2019/02/13 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
重写django的model下的objects模型管理器方式
2020/05/15 Python
简单的命令查看安装的python版本号
2020/08/28 Python
详解anaconda安装步骤
2020/11/23 Python
pycharm 关闭search everywhere的解决操作
2021/01/15 Python
奥斯汀独木舟和皮划艇:Austin Canoe & Kayak
2018/05/22 全球购物
关于运动会的稿件
2014/02/02 职场文书
机械设计毕业生自荐信
2014/02/02 职场文书
新农村建设标语
2014/06/24 职场文书
学校安全管理责任书
2014/07/23 职场文书
三好学生事迹材料
2014/12/24 职场文书
检讨书范文2000字
2015/01/28 职场文书
Python标准库之typing的用法(类型标注)
2021/06/02 Python