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应用程序在windows下不出现cmd窗口的办法
May 29 Python
Python爬取Coursera课程资源的详细过程
Nov 04 Python
python将字符串转换成数组的方法
Apr 29 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
Python调用C语言的方法【基于ctypes模块】
Jan 22 Python
Python中Numpy mat的使用详解
May 24 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
基于Python批量生成指定尺寸缩略图代码实例
Nov 20 Python
详解Python3中的 input() 函数
Mar 18 Python
python 写一个性能测试工具(一)
Oct 24 Python
Python爬虫过程解析之多线程获取小米应用商店数据
Nov 14 Python
详解python中的三种命令行模块(sys.argv,argparse,click)
Dec 15 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中MD5函数使用实例代码
2008/06/07 PHP
必须收藏的23个php实用代码片段
2016/02/02 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
javascript实现的动态文字变换
2007/07/28 Javascript
Javascript 实现TreeView CheckBox全选效果
2010/01/11 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
简单谈谈javascript Date类型
2015/09/06 Javascript
AngularJS 日期格式化详解
2015/12/23 Javascript
jQuery unbind()方法实例详解
2016/01/19 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
AngularJS控制器详解及示例代码
2016/08/16 Javascript
AngularJS 与Bootstrap实现表格分页实例代码
2016/10/14 Javascript
如何实现json数据可视化详解
2016/11/24 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
jquery引入外部CDN 加载失败则引入本地jq库
2018/05/23 jQuery
vue2.0$nextTick监听数据渲染完成之后的回调函数方法
2018/09/11 Javascript
微信小程序学习笔记之函数定义、页面渲染图文详解
2019/03/28 Javascript
json数据格式常见操作示例
2019/06/13 Javascript
JavaScript实现动态生成表格
2020/08/02 Javascript
Python中DJANGO简单测试实例
2015/05/11 Python
基于python实现微信模板消息
2015/12/21 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
使用python绘制二元函数图像的实例
2019/02/12 Python
python全栈要学什么 python全栈学习路线
2019/06/28 Python
Python程序暂停的正常处理方法
2019/11/07 Python
python GUI库图形界面开发之pyinstaller打包python程序为exe安装文件
2020/02/26 Python
python2.7使用scapy发送syn实例
2020/05/05 Python
python中字典增加和删除使用方法
2020/09/30 Python
销售自荐信
2013/10/22 职场文书
公司市场专员岗位职责
2014/06/29 职场文书
副校长竞聘演讲稿
2014/09/01 职场文书
2014领导班子四风剖析对照检查材料思想汇报
2014/09/20 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
原生CSS实现文字无限轮播的通用方法
2021/03/30 HTML / CSS