登录        注册
  人生苦短,必用Python

Django项目如何用富文本编辑器DjangoUeditor

Django KenZhang 313浏览 0评论

1. DjangoUeditor是什么?

Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大,像表格可以直接拖动调整单元格大小等, DjangoUeditor是把此编辑器集成为可以在django项目中直接使用的app,让django项目可以方便的使用这个编辑器。

2. 如何获取DjangoUeditor

可以从官方Github下载,然后放到自己的项目里,官方Github地址:https://github.com/zhangfisher/DjangoUeditor, 但是由于官方很久没有更新了,目前只支持Python2.7, 如果要用Python3.6,需要修改才能编译成功,好消息是不需要你自己去修改,慕课网的老师已经修改好了,兼容Python2.7和3.6,可以直接拿来用,这就是开源的神奇,好东西就应该收藏,我也fork到了自己的github,地址:https://github.com/KenZP/DjangoUeditor3_imooc,无限期有效,可以去下载使用。

3. 如何安装DjangoUeditor

a. 在自己的项目里,和apps同层级创建一个extra_apps,这个文件存放所有第三方app,把下载好的DjangoUeditor,放到extra_apps里面。

b. 配置项目setting.py文件

    把extra_apps增加到根目录下,加入如下代码:

sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

    在INSTALLED_APPS里面增加如下:

'DjangoUeditor'

c. url.py配置

  在项目url.py文件的urlpatterns里面增加如下url:

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

至此,DjangoUeditor已经安装完成,我们就可以使用了。

4. 如何使用DjangoUedit

安装好后,我们只需要在model里面修改需要使用此插件的字段即可,如文章的内容字段,默认如下:

body = models.TextField(default="", verbose_name="文章内容")

如果要使用Ueditor,只需要修改如下即可:

body = UEditorField(default="", verbose_name="文章内容")

因为使用了UEditorField,所以需要import这个模块

from DjangoUeditor.models import UEditorField

可以发现,完全和django model字段无缝连接,而且还扩展了很多属性,只需要加上自己需要的属性就可以。

这样配置完后对数据库做下makemigrations和migrate,进入后台就发现文章内容输入框已经是Ueditor界面了,有很多丰富的功能,如图:

ueditor.jpg


5. DjangoUeditor扩展属性有哪些?

  • width,height :编辑器的宽度和高度,以像素为单位。

  • toolbars :配置你想显示的工具栏,取值为mini,normal,full,代表小,一般,全部。如果默认的工具栏的按钮数量不符合您的要求,您可以在settings里面配置自己的显示按钮。参见后面介绍。

  • imagePath :图片上传后保存的路径,如"images/",实现上传到"{{MEDIA_ROOT}}/images"文件夹。 注意:如果imagePath值只设置文件夹,则未尾要有"/" imagePath可以按python字符串格式化:如"images/%(basename)s_%(datetime)s.%(extname)s"。这样如果上传test.png,则文件会 被保存为"{{MEDIA_ROOT}}/images/test_20140625122399.png"。 imagePath中可以使用的变量有:

    • time :上传时的时间,datetime.datetime.now().strftime("%H%M%S")

    • date :上传时的日期,datetime.datetime.now().strftime("%Y%m%d")

    • datetime :上传时的时间和日期,datetime.datetime.now().strftime("%Y%m%d%H%M%S")

    • year : 年

    • month : 月

    • day : 日

    • rnd : 三位随机数,random.randrange(100,999)

    • basename : 上传的文件名称,不包括扩展名

    • extname : 上传的文件扩展名

    • filename : 上传的文件名全称

  • filePath : 附件上传后保存的路径,设置规则与imagePath一样。

  • upload_settings : 字典值, 例:upload_settings={ imagePathFormat:"images/%(basename)s_%(datetime)s.%(extname)s", imageMaxSize:323232 fileManagerListPath:"files" }

    • upload_settings的内容就是ueditor/php/config.json里面的配置内容,因此,你可以去看config.json或者官方文档内容来决定 该如何配置upload_settings,基本上就是用来配置上传的路径、允许上传的文件扩展名、最大上传的文件大小之类的。

    • 上面的imagePath和filePath被单独提取出来配置,原因是因为这两个参数是最常使用到的,imagePath就相当于upload_settings里面的 imagePathFormat,filePath就相当于upload_settings里面的filePathFormat。

    • 您upload_settings里面设置了imagePathFormat,也可以在UeditorField里面设置imagePath,效果是一样的。但是如果两者均设置, 则imagePath优先级更高。

    • 涂鸦文件、截图、远程抓图、图片库的xxxxPathFormat如果没有配置,默认等于imagePath.

    • 远程文件库的xxxxPathFormat如果没有配置,默认等于filePath.

  • settings : 字典值,配置项与ueditor/ueditor.config.js里面的配置项一致。

  • command : 可以为Ueditor新增一个按钮、下拉框、对话框

转载请注明: KenZhang » Django项目如何用富文本编辑器DjangoUeditor

喜欢 (94) or 分享 ( 0)

联系我请直接在公众号留言~

扫码或搜索:大江大河定

大江大河定

微信公众号 扫一扫关注

想结交更多的朋友吗?

来PyDjango瞧瞧吧

PyDjango

QQ群号 88133982 立即加入

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的