Ueditor富文本Django项目使用说明

本文档详细介绍了如何在Django 1.11.7后端和Angular6前端环境下,集成并使用Ueditor。涉及到DjangoUeditor的安装、配置与Bug修复,以及Angular6中ngx-neditor的安装、配置与代码修改,以实现富文本编辑功能。
摘要由CSDN通过智能技术生成

该使用说明针对的是后端采用Django版本为1.11.7,前端使用angular6的说明。

 

DjangoUeditor 是百度Ueditor的后端服务的Django版本

安装方式

pip install DjangoUeditor

基础配置

settings.py

INSTALLED_APPS = ( #........ 'DjangoUeditor', )

urls.py

url(r'^ueditor/',include('DjangoUeditor.urls' )),

 

由于其版本过旧,且存在BUG较多,需要进行一些代码修改。

DjangoUeditor/urls.py

4-   from django.conf.urls import patterns, url

4+ from django.conf.urls import url

 

6-   from django.conf.urls.defaults import patterns, url

6+    from django.conf.urls.defaults import url

 

from views import get_ueditor_controller

 

  1. urlpatterns = patterns('',

10+ urlpatterns = [

    url(r'^controller/$',get_ueditor_controller)

  1. )

12+ ]

 

DjangoUeditor/views.py

需要将全局的json.dumps(u"{'state:'ERROR'}" 修改为json.dumps(u"{'state:'ERROR'}"

134- UploadFieldName=request.GET.get(upload_field_name[action],USettings.UEditorUploadSettings.get(action,"upfile"))

 

134+ UploadFieldName=request.GET.get(upload_field_name[action],USettings.UEditorUploadSettings.get(upload_field_name[action],"upfile"))

 

223-    remote_urls=request.POST.getlist("source[]",[])

223+    remote_urls=request.POST.getlist("file[]",[])

 

274- OutputPathFormat=(request.GET.get(path_format,USettings.UEditorSettings["defaultPathFormat"]) % path_format_var).replace("\\","/")

274+ OutputPathFormat=(USettings.UEditorUploadSettings.get(path_format,USettings.UEditorSettings["defaultPathFormat"]) % path_format_var).replace("\\","/")

 

DjangoUeditor/widgets.py

 

50-       self.upload_settings.update({

51-           "imagePathFormat": imagePath,

52-            "filePathFormat": filePath

53-        })

 

DjangoUeditor/settings.py

最好将所有FieldName字段修改为file

UrlPrefix 修改为后端资源访问路径

ePathFormat 修改后端资源目录路径加对应保存文件名格式

也可以在项目settings.py中按照下面格式修改

UEDITOR_SETTINGS ={

    'upload':{

        "imageUrlPrefix": "http://10.250.40.99:****/",

        "imagePathFormat": "./media/image/%(basename)s_%(datetime)s_%(rnd)s.%(extname)s",

        "imageFieldName":"file",

        "videoUrlPrefix": "http://10.250.40.99:****/",

        "videoPathFormat": "./media/video/%(basename)s_%(datetime)s_%(rnd)s.%(extname)s",

        "videoFieldName":"file",

    }

}

 

 

Linux平台上通过pip安卓后缺少静态文件和模板文件,可以再window平台上安装完后将对应的静态文件和模板文件复制到linux平台对应虚拟环境的site-packages文件中的DjanoUeditor目录下。

项目的settings文件需要配置STATIC_ROOT(静态资源地址)

运行python manage.py collectstatic

收集ueditor的静态资源、

 

Admin 后端资源想使用富文本只需要在models文件中将原本的 models.TextField 替换成

UEditorField 即可。

from DjangoUeditor.models import UEditorField

- content = models.TextField(null=True, blank=True)

+ content = UEditorField(null=True, blank=True)

 

以上修改后的内容我已经上传到djangoTemplate项目中的公用模块中,可以再该项目复制DjangoUeditor到自己项目进行基础配置即可使用。

前端使用的是angular6

安装方式

安装@notadd/ngx-neditor

  • npm install @notadd/ngx-neditor

安装依赖

  • mkdir -p ./src/assets/node_modules
Ueditor HTML编辑器是百度开源的HTML编辑器, 本模块帮助在Django应用中集成百度Ueditor HTML编辑器。 安装包中已经集成Ueditor v1.2.2 使用Django-Ueditor非常简单,方法如下: 1、安装方法 **方法一:下载安装包,在命令行运行: python setup.py install **方法二:使用pip工具在命令行运行(推荐): pip install DjangoUeditor 2、在INSTALL_APPS里面增加DjangoUeditor app,如下: INSTALLED_APPS = ( #........ 'DjangoUeditor', ) 3、在urls.py中增加: url(r'^ueditor/',include('DjangoUeditor.urls' )), 4、在models中这样定义: from DjangoUeditor.models import UEditorField class Blog(models.Model): Name=models.CharField(,max_length=100,blank=True) Content=UEditorField('内容 ',height=100,width=500,default='test',imagePath="uploadimg/",imageManagerPath="imglib",toolbars='mini',options={"elementPathEnabled":True},filePath='upload',blank=True) 说明UEditorField继承自models.TextField,因此你可以直接将model里面定义的models.TextField直接改成UEditorField即可。 UEditorField提供了额外的参数: toolbars:配置你想显示的工具栏,取值为mini,normal,full,代表小,一般,全部。如果默认的工具栏不符合您的要求,您可以在settings里面配置自己的显示按钮。参见后面介绍。 imagePath:图片上传的路径,如"images/",实现上传到"{{MEDIA_ROOT}}/images"文件夹 filePath:附件上传的路径,如"files/",实现上传到"{{MEDIA_ROOT}}/files"文件夹 imageManagerPath:图片管理器显示的路径,如"imglib/",实现上传到"{{MEDIA_ROOT}}/imglib",如果不指定则默认=imagepath。 options:其他UEditor参数,字典类型。参见Ueditor的文档ueditor_config.js里面的说明。 css:编辑器textarea的CSS样式 width,height:编辑器的宽度和高度,以像素为单位。 5、在表单中使用非常简单,与常规的form字段没什么差别,如下: class TestUeditorModelForm(forms.ModelForm): class Meta: model=Blog *********************************** 如果不是用ModelForm,可以有两种方法使用: 1: 使用forms.UEditorField from DjangoUeditor.forms import UEditorField class TestUEditorForm(forms.Form): Description=UEditorField("描述",initial="abc",width=600,height=800) 2: widgets.UEditorWidget from DjangoUeditor.widgets import UEditorWidget class TestUEditorForm(forms.Form): Content=forms.CharField(label="内容",widget=UEditorWidget(width=800,height=500, imagePath='aa', filePath='bb',toolbars={})) widgets.UEditorWidget和forms.UEditorField的输入参数与上述models.UEditorField一样。 6、Settings配置 在Django的Settings可以配置以下参数: UEDITOR_SETTINGS={ "toolbars":{ #定义多个工具栏显示的按钮,允行定义多个 "name1":[[ 'source', '|','bold', 'italic', 'underline']], "name2",[] }, "images_upload":{ "allow_type":"jpg,png", #定义允许的上传的图片类型 "max_size":"2222kb" #定义允许上传的图片大小,0代表不限制 }, "files_upload":{ "allow_type":"zip,rar", #定义允许的上传的文件类型 "max_size":"2222kb" #定义允许上传的文件大小,0代表不限制 },, "image_manager":{ "location":"" #图片管理器的位置,如果没有指定,默认跟图片路径上传一样 }, } 7、其他事项: **本程序基于百度ueditor 1.2.2,安装包里面已经包括了,不需要再额外安装。 **目前暂时不支持ueditor的插件 **Django默认开启了CSRF中间件,因此如果你的表单没有加入{% csrf_token %},那么当您上传文件和图片时会失败
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值