Django框架使用富文本編輯器Uedit的方法分析
本文實(shí)例講述了Django框架使用富文本編輯器Uedit的方法。分享給大家供大家參考,具體如下:
Uedit是百度一款非常好用的富文本編輯器
一、安裝及基本配置
官方GitHub(有詳細(xì)的安裝使用教程):https://github.com/zhangfisher/DjangoUeditor
1. settings.py
INSTALLED_APPS = [ ... 'DjangoUeditor', ... ]
2. 配置urls
from django.conf.urls import url, include urlpatterns = [ # 富文本相關(guān)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"文章內(nèi)容") ...
注意,在要使用ueditor的字段所在adminx.py的類(lèi)中,添加
# 這樣就指定了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中注冊(cè)插件
在extra_apps.xadmin.plugins.__init__.py中添加
PLUGINS = ( ... 'ueditor', )
友情提醒
在Django中使用富文本編輯器
在HTML頁(yè)面中,Django處于安全考慮,將文本內(nèi)容默認(rèn)轉(zhuǎn)義,我們需要關(guān)閉
來(lái)正常輸出我們的文章
{% autoescape off %} {{ article.abstract }} {% endautoescape %}
記錄一下,空格的轉(zhuǎn)義字符分為如下幾種:
1. &160#;不斷行的空白(1個(gè)字符寬度)
2.  &8194#;半個(gè)空白(1個(gè)字符寬度)
3.  &8195#;一個(gè)空白(2個(gè)字符寬度)
4.  &8201#;窄空白(小于1個(gè)字符寬度)
平時(shí)一般用的是 但是在中文中也許有時(shí)候更適合用 
希望本文所述對(duì)大家基于Django框架的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
python獲取當(dāng)前文件所在目錄、獲取上級(jí)目錄的坑及解決
這篇文章主要介紹了python獲取當(dāng)前文件所在目錄、獲取上級(jí)目錄的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08python多進(jìn)程并發(fā)的實(shí)現(xiàn)示例
python中的多線(xiàn)程無(wú)法利用多核優(yōu)勢(shì),如果想要充分地使用多核CPU的資源,在python中大部分情況需要使用多進(jìn)程,本文主要介紹了python多進(jìn)程并發(fā)的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-02-02MySQLdb ImportError: libmysqlclient.so.18解決方法
這篇文章主要介紹了MySQLdb ImportError: libmysqlclient.so.18解決方法,需要的朋友可以參考下2014-08-08利用python實(shí)現(xiàn)聚類(lèi)分析K-means算法的詳細(xì)過(guò)程
K-means算法是很典型的基于距離的聚類(lèi)算法,采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象的距離越近,其相似度就越大,下面通過(guò)本文給大家介紹利用python實(shí)現(xiàn)聚類(lèi)分析K-means算法的詳細(xì)過(guò)程,感興趣的朋友一起看看吧2021-11-11用Pelican搭建一個(gè)極簡(jiǎn)靜態(tài)博客系統(tǒng)過(guò)程解析
這篇文章主要介紹了用Pelican搭建一個(gè)極簡(jiǎn)靜態(tài)博客系統(tǒng)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08python Multiprocessing.Pool進(jìn)程池模塊詳解
multiprocessing模塊提供了一個(gè)Process類(lèi)來(lái)代表一個(gè)進(jìn)程對(duì)象,multiprocessing模塊像線(xiàn)程一樣管理進(jìn)程,這個(gè)是multiprocessing的核心,它與threading很相似,對(duì)多核CPU的利用率會(huì)比threading好的多2022-10-10Python將內(nèi)容進(jìn)行base64編碼與解碼實(shí)現(xiàn)
本文主要介紹了Python將內(nèi)容進(jìn)行base64編碼與解碼實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03