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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
Python 编码Basic Auth使用方法简单实例
May 25 Python
使用matplotlib画散点图的方法
May 25 Python
Python列表(List)知识点总结
Feb 18 Python
opencv python 图像轮廓/检测轮廓/绘制轮廓的方法
Jul 03 Python
基于python实现上传文件到OSS代码实例
May 09 Python
什么是Python中的顺序表
Jun 02 Python
keras 自定义loss层+接受输入实例
Jun 28 Python
详解python定时简单爬取网页新闻存入数据库并发送邮件
Nov 27 Python
如何用Python搭建gRPC服务
Jun 30 Python
python3操作redis实现List列表实例
Aug 04 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 身份证号验证函数
2009/05/07 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
获取URL文件名后缀
2013/10/24 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
PHP闭包函数传参及使用外部变量的方法
2016/03/15 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
firefox firebug中文入门教程 脚本之家新年特别版
2010/01/02 Javascript
原生js编写设为首页兼容ie、火狐和谷歌
2014/06/05 Javascript
JS实现简单的键盘打字的效果
2015/04/24 Javascript
JavaScript实现给定时间相加天数的方法
2016/01/25 Javascript
AngularJS中实现动画效果的方法
2016/07/28 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
详解Vue底部导航栏组件
2019/05/02 Javascript
vue实现数字滚动效果
2020/06/29 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
2020/09/18 Javascript
vue制作toast组件npm包示例代码
2020/10/29 Javascript
javascript实现移动端轮播图
2020/12/09 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
python自动zip压缩目录的方法
2015/06/28 Python
Python3实现二叉树的最大深度
2019/09/30 Python
基于python及pytorch中乘法的使用详解
2019/12/27 Python
Python连接Oracle之环境配置、实例代码及报错解决方法详解
2020/02/11 Python
世界领先的高品质定制产品平台:Zazzle
2017/07/23 全球购物
美国领先的家庭智能音响系统品牌:Sonos
2018/07/20 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
《浅水洼里的小鱼》听课反思
2014/02/28 职场文书
学习实践科学发展观心得体会
2014/09/10 职场文书
报到证办理个人委托书
2014/10/06 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
安全教育观后感
2015/06/17 职场文书
iPhone13将有八大升级
2021/04/15 数码科技
nginx配置虚拟主机的详细步骤
2021/07/21 Servers