django2集成DjangoUeditor富文本编辑器
富文本编辑器,在web开发中可以说是不可缺少的。django并没有自带富文本编辑器,因此我们需要自己集成,在这里推荐大家使用DjangoUeditor,因为DjangoUeditor封装了我们需要的一些功能如文件上传、在后台和前台一起使用等,非常方便。
一、下载DjangoUeditor:
1.python3: https://github.com/twz915/DjangoUeditor3/ (直接下载zip)
2.python2:https://github.com/zhangfisher/DjangoUeditor(直接下载zip,或 pip install DjangoUeditor)
二、 新建django项目:
1. 在项目的根目录新建extra_apps文件夹并将我们下载好的zip文件解压打开后找到DjangoUeditor将DjangoUeditor直接拷贝到我们项目的extra_apps中,如下:
2.在settings.py文件中添加两行代码:如下
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))
3.通过pycharm 选中extra_apps文件夹点击鼠标右键选中菜单mark directory as 选择 sources root 就可以变成上面的蓝色文件夹目录就可以了。
变成蓝色文件夹后就可以在settings.py 的INSTALLED_APPS中引入DjangoUeditor
4.通过以上三步就将基本的集成工作就完成了,下面就可以开始使用了。
4.1 在的urls.py中添加ueditor:
4.2 django后台使用ueditor,在我们的项目中通过django命令(djang-admin startapp blog)创建一 个 app叫blog,注意需要在settings.py的INSTALLED_APPS中添加blog。
4.3 在blog的model中新建一张表比如叫Article:
引入UEditorField
from DjangoUeditor.modelsimport UEditorField
from django.dbimport models
class Article(models.Model):
title = models.CharField(max_length=100, verbose_name='标题')
content = UEditorField(width=600, height=300, toolbars="full", imagePath="images/", filePath="files/",
upload_settings={"imageMaxSize":1204000},
settings={}, verbose_name='内容')
create_time = models.DateTimeField(auto_now_add=True, verbose_name='发表时间')
class Meta:
db_table ='Article'
verbose_name ='文章'
verbose_name_plural = verbose_name
在blog的admin.py中添加对表的管理
然后通过python manage.py makemigrations 和python mamage.py migrate 生成数据库。通过python manage.py createsuperuser 创建一个超级管理员用于登录后台。执行完命令后就开始运行项目通过python manage.py runserver运行。运行成功后访问,http://127.0.0.1:8000/admin/用自己创建的管理员帐号登录后台进去后效果如下:
点击文章添加文章,就可以看到编辑器已经加载出来了
但是,发现上传图片是有问题的,如何解决,其实很简单,只需要在settings.py文件中添加静态文件路径即可
MEDIA_URL ='/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
这个路径的名称可以自由命名这里就直接使用media
在urls中配置还需要配置一下静态路径才能显示图片如下:
if settings.DEBUG:
media_root = os.path.join(settings.BASE_DIR, settings.MEDIA_ROOT)
urlpatterns += static(settings.MEDIA_URL, document_root=media_root)
配置好后刷新界面,再次上传图片,就可以正常显示了
这样django在admin中就可以使用DjangoUeditor了,那么在前端也需要怎么用呢?,其实也很简单,django是可以自定义field的,DjangoUeditor已为我们定义好了,使用forms就可以了。
三、前端使用DjangoUeditor
1. 在项目的templates中新建html文件模版(如:index.html)
2.在blog的view.py中添加一个函数
def index(request):
return render(request, 'index.html')
3.在urls.py中配置路由
path('', views.index),
访问 http://127.0.0.1:8000/看看模版是否正常加载,正常加载之后就进入下一步。
4.在views.py中定义编辑器的form
class TestUEditorForm(forms.Form):
content = UEditorField('内容', width=600, height=300, toolbars="full", imagePath="images/", filePath="files/",
upload_settings={"imageMaxSize":1204000},
settings={})
配置好后,当我们运行项目后发现出错了,心情不美丽了。
说是forms出错了,咋办,我们有源码就好办,这也就是为什么要使用源码集成的原因。
根据提示对源码进行修改,找到django2_DjangoUeditor/extra_apps/DjangoUeditor/forms.py
我们发现就是这里报错了
修改为
再次运行项目我们发现就ok了接下来我们需要在html中使用编辑器
刷新界面后,我们要的编辑器就出现了
四、总结:
在此,本文的内容就介绍完了,这也是我最近做项目使用到了DjangoUeditor,对DjangoUeditor使用进行总结记录,有什么问题欢迎指正。如果喜欢我的文章欢迎关注我,一起学习,一起成长。
源码下载: https://github.com/juzhizhang/django2_DjangoUeditor
简书地址: Code人生
django2集成DjangoUeditor富文本编辑器的更多相关文章
- django xadmin 集成DjangoUeditor富文本编辑器
本文档记录自己的学习历程! 介绍 Ueditor HTML编辑器是百度开源的在线HTML编辑器,功能非常强大 额外功能 解决图片视频等无法上传显示问题 Ueditor下载地址 https://gith ...
- vue集成百度富文本编辑器
1.前期工作,访问百度富文本官网下载相应的百度富文本文件,根据后端用的技术下载相应的版本,建议下载最新版UTF-8版 (有图有真相,看图) https://ueditor.baidu.com/webs ...
- 项目页面集成ckeditor富文本编辑器
步骤一.引入ckeditor.js (注:本实例以ThinkPHP3.2框架为载体,不熟悉ThinkPHP的朋友请自行补习,ckeditor文件代码内容也请去ckeditor官网自行下载) 作为程序员 ...
- Vue集成tinymce富文本编辑器并实现本地化指南(2019.11.21最新)
tinymce是一款综合口碑特别好.功能异常强大的富文本编辑器,在某些网站,甚至享有"宇宙最强富文本编辑器"的称号.那么,在Vue项目中如何集成呢?这并不困难,只需要参照官方教程 ...
- Django集成百度富文本编辑器uEditor
UEditor是由百度web前端研发部开发所见即所得富文本web编辑器,具有轻量,可定制,注重用户体验等特点,开源基于MIT协议,允许自由使用和修改代码. 首先从ueEditor官网下载最新版本的包, ...
- 在Vue2.0中集成UEditor 富文本编辑器
在vue的'项目中遇到了需要使用富文本编辑器的需求,在github上看了很多vue封装的editor插件,很多对图片上传和视频上传的支持并不是很好,最终还是决定使用UEditor. 这类的文章网上有很 ...
- vue-cli中如何集成UEditor 富文本编辑器?
1.根据后台语言下载对应的editor插件版本 地址:https://ueditor.baidu.com/website/download.html 2.将下载好的资源放在/static/uedito ...
- python3 Django集成Ueditor富文本编辑器
1.下载 python3: https://github.com/twz915/DjangoUeditor3/ (直接下载zip) 2.解压,解压打开后找到DjangoUeditor将DjangoUe ...
- tp5 集成 layui富文本编辑器
编辑器地址:http://www.layui.com/doc/modules/layedit.html 一睹芳容 1 去官网:http://www.layui.com/ 下载layui ├─c ...
随机推荐
- L2-020. 功夫传人(dfs+vector 或者 邻接矩阵+dij+优先队列)
L2-020. 功夫传人 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 一门武功能否传承久远并被发扬光大,是要看缘分的.一般来 ...
- 修改rbd指定位置的数据
标签(空格分隔): ceph,ceph实验 --- 我们通过查看index为0x01的小4M文件,得知了file2.txt这个文件内容在这个4M内保存的位置为0x9000,因为0x01前面还有一个4M ...
- 数据校验(3)--demo2---bai
input_user.jsp <%@ page language="java" import="java.util.*" pageEncoding=&qu ...
- appium_python_android测试环境搭建
第一步 安装appium •Appium是由.NET 开发的,所以,它会依赖 .NET framework相关组件,所以先安装.net framework 4.5,备注: Appium最低支持.ne ...
- react核心知识点高度总结
本文系统的将react的语法以最简练的方式列举出来 安装 写在前面 JSX 组件的定义 state 生命周期 方法 条件渲染 列表 表单 组合嵌套 扩展语法 context传递props 错误拦截 r ...
- 语法错误: 标识符“acosf”
1>e:\vs2010\vc\include\cmath(19): error C2061: 语法错误: 标识符“acosf” 1>e:\vs2010\vc\include\cmath(1 ...
- Debian 7开启ssh、telnet
SSH 1. 安装ssh服务 apt-get install openssh-server 2. 开启ssh /etc/init.d/ssh start Telnet 1. 安装telnet apt ...
- nfs cron shell 笔记
1.nfs 2.crond 3.shell 1.准备环境: 防火墙 selinux 配置ip 2.安装软件 二进制 源码安装 3.改改配置文件 二进制:/etc/nginx/nginx.conf 源码 ...
- 问题:css 自动换行;结果:CSS控制文本自动换行
CSS控制文本自动换行 CSS控制文本自动换行,阅读CSS控制文本自动换行,1.你定死表格的宽度,即给表格一个宽度值(是 数值,不是百分比) 2.强制不换行div{//white-space:不换行; ...
- C语言枚举类型enum-(转)-温故而知新
在实际编程中,有些数据的取值往往是有限的,只能是非常少量的整数,并且最好为每个值都取一个名字,以方便在后续代码中使用,比如一个星期只有七天,一年只有十二个月,一个班每周有六门课程等. 以每周七天为例, ...