Django框架使用富文本编辑器Uedit的方法分析
作者:站在两个世界的边缘 发布时间:2021-01-19 21:03:47
标签:Django框架,富文本编辑器,Uedit
本文实例讲述了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程序设计有所帮助。
来源:https://www.cnblogs.com/wongbingming/p/7117957.html
0
投稿
猜你喜欢
- 楼主在做公司项目的时候遇到url重定向的问题,因此上网简单查找,作出如下结果由于使用的是语言是python所以以下是python的简单解决方
- 一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制。这两天又在忙着别的事情,所以现在才跟大家分享。一、效果
- 通过 CSS transform (firefox文档, safari文档)属性. 无所不能的css也开始玩起3D效果了。在配合 CSS t
- 最近在看python脚本语言,脚本语言是一种解释性的语言,不需要编译,可以直接用,由解释器来负责解释。python语言很强大,而且写起来很简
- 不知各位是否有手写代码的习惯。例如:要在一个单元格插入一段CSS代码,或者一段Javascript代码,怎么做才比较快捷方便呢?虽然Drea
- go-micro是golang的一个微服务框架。这篇文章将介绍使用go-micro最新版本v4开发gRPC服务的方式。1、安装protoc这
- 目录需求分析进一步分析再进一步分析代码实现我们在写爬虫的过程中,除了研究反爬之外,几乎全部的时间都在写解析逻辑。那么,生命苦短,为什么我们不
- 本文实例讲述了Python使用cx_Freeze库生成msi格式安装文件的方法。分享给大家供大家参考,具体如下:①.需要在目录下面创建一个文
- 版本:平台:ubuntu 14 / I5 / 4G内存python版本:python2.7opencv版本:2.13.4依赖:如果系统没有p
- 这篇文章主要介绍了Python属性和内建属性实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友
- 简介由于项目在注册、登录、找回密码 时需要发送短信验证的功能,我们使用腾讯云短信做。为什么要用腾讯云短信呢? 因为注册就送 100条免费短信
- 本文实例讲述了python获取一组汉字拼音首字母的方法。分享给大家供大家参考。具体实现方法如下:#!/usr/bin/env python
- class Node: def __init__(self,dataval=None): self.d
- 首先,假设我们有如下餐厅数据集:import pandas as pddf = pd.DataFrame({ 'rest
- 围绕一门语言,学习它的文化精髓,能让你成为一名更优秀的程序员。如果你还没读过Python之禅(Zen of Python) ,那么打开Pyt
- 前两天有一位网友问我一个关于Javascript中++操作符的问题,他的代码大致是这样的ADS.addEvent(window,'c
- 最近看到市场上各种的文档格式转换软件,要么是收费、要么是有大量的广告。于是学习了一下 PyQt5 的页面操作,再加上了解 pandas 的使
- '去掉字符串头尾的连续的回车和空格 function trimVBcrlf(str) tr
- 调用很简单 Readkid.motion.tween(target,duration, vars)target: 要缓动的DOM对象dura
- 前言本文主要给大家介绍了关于Django中CBV和FBV的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。一、&n