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操作MySQL数据库具体方法
Oct 28 Python
python算法学习之计数排序实例
Dec 18 Python
Python抓取Discuz!用户名脚本代码
Dec 30 Python
python中requests模块的使用方法
Apr 08 Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 Python
Python Django使用forms来实现评论功能
Aug 17 Python
通过Python爬虫代理IP快速增加博客阅读量
Dec 14 Python
python下解压缩zip文件并删除文件的实例
Apr 24 Python
关于python pycharm中输出的内容不全的解决办法
Jan 10 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
May 11 Python
Python通过len函数返回对象长度
Oct 22 Python
使用python创建股票的时间序列可视化分析
Mar 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与MySQL交互使用详解
2006/10/09 PHP
ThinkPHP基本的增删查改操作实例教程
2014/08/22 PHP
PHP数组和explode函数示例总结
2015/05/08 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
js函数排序的实例代码
2013/07/01 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
js实现div在页面拖动效果
2016/05/04 Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
2018/01/26 Javascript
Vue.JS实现垂直方向展开、收缩不定高度模块的JS组件
2018/06/19 Javascript
了解Javascript中函数作为对象的魅力
2019/06/19 Javascript
javascript实现5秒倒计时并跳转功能
2019/06/20 Javascript
微信小程序激励式视频广告组件使用详解
2019/12/06 Javascript
Vue+Element ui 根据后台返回数据设置动态表头操作
2020/09/21 Javascript
vue 插槽简介及使用示例
2020/11/19 Vue.js
Python request设置HTTPS代理代码解析
2018/02/12 Python
python爬取cnvd漏洞库信息的实例
2019/02/14 Python
Python任意字符串转16, 32, 64进制的方法
2019/06/12 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
python如何查看安装了的模块
2020/06/23 Python
python不同系统中打开方法
2020/06/23 Python
pycharm 2020 1.1的安装流程
2020/09/29 Python
俄罗斯厨房产品购物网站:COOK HOUSE
2021/03/15 全球购物
学前教育专业毕业生自荐信
2013/10/03 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
施工安全协议书范本
2014/09/26 职场文书
个人学习群众路线心得体会
2014/11/05 职场文书
2015入党自荐书范文
2015/03/05 职场文书
2015年计生工作总结范文
2015/04/24 职场文书
婚礼伴郎致辞
2015/07/28 职场文书
人为什么会“幸灾乐祸”?
2019/08/06 职场文书
详解Java实现设计模式之责任链模式
2021/06/23 Java/Android
JVM的类加载器和双亲委派模式你了解吗
2022/03/13 Java/Android
【TED出品】天梯非主流开心游1700 划水骑士
2022/03/31 魔兽争霸