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之从if开始语句的征程
Sep 14 Python
Python实现的监测服务器硬盘使用率脚本分享
Nov 07 Python
Python IDLE入门简介
Dec 08 Python
Python3 实现随机生成一组不重复数并按行写入文件
Apr 09 Python
python远程连接服务器MySQL数据库
Jul 02 Python
Django 实现购物车功能的示例代码
Oct 08 Python
Django 路由控制的实现代码
Nov 08 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
Apr 01 Python
python fuzzywuzzy模块模糊字符串匹配详细用法
Aug 29 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
Sep 18 Python
详解centos7+django+python3+mysql+阿里云部署项目全流程
Nov 15 Python
python数据库编程 ODBC方式实现通讯录
Mar 27 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图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
laravel5实现微信第三方登录功能
2018/12/06 PHP
Gird事件机制初级读本
2007/03/10 Javascript
jQuery Ajax方法调用 Asp.Net WebService 的详细实例代码
2011/04/27 Javascript
利用js读取动态网站从服务器端返回的数据
2014/02/10 Javascript
JavaScript利用append添加元素报错的解决方法
2014/07/01 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
JS往数组中添加项性能分析
2015/02/25 Javascript
jQuery处理json数据返回数组和输出的方法
2015/03/11 Javascript
javascript动态创建链接的方法
2015/05/13 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
angular+ionic返回上一页并刷新页面
2017/08/08 Javascript
使用vue-cli打包过程中的步骤以及问题的解决
2018/05/08 Javascript
JavaScript中arguments和this对象用法分析
2018/08/08 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
layer.open弹层查看缩略图的原图,自适应大小的实例
2019/09/05 Javascript
js实现蒙版效果
2020/01/11 Javascript
Python程序设计入门(1)基本语法简介
2014/06/13 Python
Python快速从注释生成文档的方法
2016/12/26 Python
对Python中内置异常层次结构详解
2018/10/18 Python
详解Python学习之安装pandas
2019/04/16 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
python中pandas库中DataFrame对行和列的操作使用方法示例
2020/06/14 Python
Python Pygame实现俄罗斯方块
2021/02/19 Python
使用CSS3实现input多选框自定义样式的方法示例
2019/07/19 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
linux面试题参考答案(6)
2016/06/23 面试题
教师实习期自我鉴定
2013/10/06 职场文书
餐厅收银员岗位职责
2015/04/07 职场文书
在职证明书模板
2015/06/15 职场文书
Redis调用Lua脚本及使用场景快速掌握
2022/03/16 Redis
TS 类型收窄教程示例详解
2022/09/23 Javascript