第一步:定义表存图片路径

models.py

  1. class AdminIMG(models.Model):
  2.     filename = models.CharField(max_length=200, blank=True, null=True)
  3.     img  = models.ImageField(upload_to = './admin')

  1. H:\blog>python manage.py makemigrations
  2. Migrations for 'XYZblog':
  3. XYZblog\migrations\0002_auto_20170923_2018.py
  4. - Create model AdminIMG
  5. H:\blog>python manage.py migrate
  6. Operations to perform:
  7. Apply all migrations: XYZblog, admin, auth, contenttypes, sessions
  8. Running migrations:
  9. Applying XYZblog.0002_auto_20170923_2018... OK

第二步:定义视图,让图片直接显示在编辑框内

views.py

  1. from .models import AdminIMG
  2. def uploadIMG(request):
  3.     img = request.FILES.get('img')
  4.     adminIMG = AdminIMG()
  5.     adminIMG.filename = img.name
  6.     adminIMG.img = img
  7.     adminIMG.save()
  8.     return HttpResponse(
  9.         "<script>top.$('.mce-btn.mce-open').parent().find('.mce-textbox').val('/media/%s').closest('.mce-window').find('.mce-primary').click();</script>" % adminIMG.img)

 

第三步:定义上传的目录

settings.py

 


  1. MEDIA_ROOT = os.path.join(BASE_DIR, 'static/upload/img')

第四步:定义url

urls.py

  1. from django.views.static import serve
  2. from blog.settings import MEDIA_ROOT
  3. urlpatterns = [
  4.     url(r'uploadIMG/',views.uploadIMG,name='uploadIMG'),
  5.     url(r'^media/(?P<path>.*)$', serve, {'document_root': MEDIA_ROOT, }),
  6.     ......
  7. ]

 

 

 第五步:编辑\static\js\tinymce\textareas.js


  1. tinymce.init({
  2. selector: 'textarea',
  3. theme : "modern",
  4. plugins: ["image"],
  5. image_advtab: true,
  6. paste_data_images:true,
  7. file_browser_callback: function(field_name, url, type, win) {
  8. if(type=='image') $('#my_form input').click();
  9. },
  10. });
  11. $( document ).ready(function() {
  12. h ='<iframe id="form_target" name="form_target" style="display:none"></iframe><form id="my_form" action="/temporary/uploadIMG/" target="form_target" method="post" enctype="multipart/form-data" style="width:0px;height:0;overflow:hidden"><input name="img" type="file" onchange="$(\'#my_form\').submit();this.value=\'\';"></form>';
  13. $('body').append(h);
  14. function getCookie(name) {
  15. var cookieValue = null;
  16. if (document.cookie && document.cookie != '') {
  17. var cookies = document.cookie.split(';');
  18. for (var i = 0; i < cookies.length; i++) {
  19. var cookie = jQuery.trim(cookies[i]);
  20. // Does this cookie string begin with the name we want?
  21. if (cookie.substring(0, name.length + 1) == (name + '=')) {
  22. cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
  23. break;
  24. }
  25. }
  26. }
  27. return cookieValue;
  28. }
  29. var csrftoken = getCookie('csrftoken');
  30. console.log(csrftoken);
  31. $('#my_form').append('<input type="hidden" name="csrfmiddlewaretoken" value='+csrftoken+' />');
  32. });

编辑器已有图片上传功能:

保存,查看数据库:

查看上传目录:

查看前台显示:

OK!

tinymce富文本编辑器整合到django的更多相关文章

  1. Vue CLI 3+tinymce 5富文本编辑器整合

    基于Vue CLI 3脚手架搭建的项目整合tinymce 5富文本编辑器,vue cli 2版本及tinymce 4版本参考:https://blog.csdn.net/liub37/article/ ...

  2. 15、Vue CLI 3+tinymce 5富文本编辑器整合

    富文本编辑器里大佬们都说tinymce NB! 插件安装 inymce官方提供了一个vue的组件tinymce-vue 如果有注册或购买过服务的话,直接通过组件配置api-key直接使用,懒的注册或者 ...

  3. vue中引入Tinymce富文本编辑器

    最近想在项目上引入一个富文本编辑器,之前引入过summernote,感觉并不太适合vue使用, 然后在网上查了查,vue中使用Tinymce比较适合, 首先,我们在vue项目的components文件 ...

  4. 在 Vue 项目中引入 tinymce 富文本编辑器

    项目中原本使用的富文本编辑器是 wangEditor,这是一个很轻量.简洁编辑器 但是公司的业务升级,想要一个功能更全面的编辑器,我找了好久,目前常见的编辑器有这些: UEditor:百度前端的开源项 ...

  5. tinymce 富文本编辑器 编写资料

    tinymce官方文档: 粘贴图片插件 博客搬运地址 使用Blob获取图片并二进制显示实例页面 tinymce自动调整插件 是时候掌握一个富文本编辑器了——TinyMCE(1) XMLHttpRequ ...

  6. Vue集成tinymce富文本编辑器并实现本地化指南(2019.11.21最新)

     tinymce是一款综合口碑特别好.功能异常强大的富文本编辑器,在某些网站,甚至享有"宇宙最强富文本编辑器"的称号.那么,在Vue项目中如何集成呢?这并不困难,只需要参照官方教程 ...

  7. 「newbee-mall新蜂商城开源啦」 页面优化,最新版 wangEditor 富文本编辑器整合案例

    大家比较关心的新蜂商城 Vue3 版本目前已经开发了大部分内容,相信很快就能够开源出来让大家尝鲜了,先让大家看看当前的开发进度: 开源仓库地址为 https://github.com/newbee-l ...

  8. HandyEditor 富文本编辑器整合到python flask项目中

    1.下载HandyEditor,地址http://he.catfish-cms.com/ 2.解压后的文件名HandyEditor-master改为HandyEditor,文件夹里的文件如下 3.将H ...

  9. Django使用tinymce富文本编辑器

    1 - 安装 pip install django-tinymce==2.6.0 2 - 注册app INSTALLED_APPS = ( ... 'tinymce', ) 3 - 在setting中 ...

随机推荐

  1. 数据结构-Python 列表(List)

    列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现 一.列表常用方法 1.创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可. eg:list1 = ['1', ' ...

  2. 23 抽象类 abstract

    /*概念 * abstract:关键字,用于修饰方法和类 * 抽象方法:不同类的方法是相似,但是具体内容又不太一样,所以我们只能抽取他的声明,没有具体的方法体,没有具体方法体的方法就是抽象方法 * 抽 ...

  3. coding++:漫画版-了解什么是分布式事务?

    —————  第二天  ————— ———————————— 假如没有分布式事务: 在一系列微服务系统当中,假如不存在分布式事务,会发生什么呢?让我们以互联网中常用的交易业务为例子: 上图中包含了库存 ...

  4. 超过百万的StackOverflow Flutter 问题

    老孟导读:今天分享StackOverflow上高访问量的20大问题,这些问题给我一种特别熟悉的感觉,我想你一定或多或少的遇到过,有的问题在stackoverflow上有几十万的阅读量,说明很多人都遇到 ...

  5. vue 全局自定义组件

    1.vue文件 <template> <div style="position: absolute;bottom: 10px;text-align: center;widt ...

  6. 360众测考试 Drupal 漏洞 CVE-2018-7600 远程代码执行-复现

    0x00 前言 昨天360众测遇到的一个题 今天自己搭环境复现一下,希望对大家有帮助 0x01 漏洞简介 Drupal是一个开源内容管理系统(CMS),全球超过100万个网站(包括政府,电子零售,企业 ...

  7. yum 下载全量依赖 rpm 包及离线安装(终极解决方案)

    目录 简介 验证环境 查看依赖包 方案一(推荐):repotrack 方案二:yumdownloader 方案三:yum 的 downloadonly 插件 离线安装 rpm 参考资料 简介 通常生产 ...

  8. stand up meeting 1/14/2016

    part 组员                工作              工作耗时/h 明日计划 工作耗时/h    UI 冯晓云  主要对生词本卡片的整体设计做修改:协助主程序完成popup部分 ...

  9. 如何将SqlServer配置为django的数据源(2.2以后版本)

    django-pyodbc-azure 是一个官方推荐的 第三方django数据库支持backend. 根据官网的介绍django-pyodbc-azure 只能支持到 django 2.1.如果涉及 ...

  10. Windows安装Tesseract-OCR 4.00并配置环境变量

    一.前言 Tesseract-OCR 是一款由HP实验室开发由Google维护的开源OCR(Optical Character Recognition , 光学字符识别)引擎.与Microsoft O ...