Summernote使用记录
时间:2019-01-11
本文章向大家介绍Summernote使用记录,主要包括Summernote使用记录使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Summernote使用记录
在前台上传两张同样的Koala.jpg,在文件夹查看,Summernote可以正常使用啦。先上图再说。
前台上传两张图
到上传指定的文件夹中查看
一.前台
1.引入summernote基本的css,js文件,汉化需要加入语言js文件:summernote.css,summernote.min.js,summernote-zh-CN.min.js
2. html 添加:<input id="MySummernote" class="summernote" >
注意:class必须是summernote!
3.Js初始化:
$(document).ready(function () { $('.summernote').summernote({#编辑器设置#} { //width: 750, height: 250, focus: true, {#页面打开时光标自动进入编辑区#} lang: 'zh-CN', toolbar: [{#工具栏加载项设置#} //字体工具 ['fontname', ['fontname']], //字体系列 ['style', ['bold', 'italic', 'underline', 'clear']], // 字体粗体、字体斜体、字体下划线、字体格式清除 ['font', ['strikethrough', 'superscript', 'subscript']], //字体划线、字体上标、字体下标 ['fontsize', ['fontsize']], //字体大小 ['color', ['color']], //字体颜色 //段落工具 ['style', ['style']],//样式 ['para', ['ul', 'ol', 'paragraph']], //无序列表、有序列表、段落对齐方式 ['height', ['height']], //行高 //插入工具 ['table',['table']], //插入表格 ['hr',['hr']],//插入水平线 ['link',['link']], //插入链接 ['picture',['picture']], //插入图片 ['video',['video']], //插入视频 //其它 ['fullscreen',['fullscreen']], //全屏 ['codeview',['codeview']], //查看html代码 ['undo',['undo']], //撤销 ['redo',['redo']], //取消撤销 ['help',['help']], //帮助 ], callbacks:{ onImageUpload: function(files) { SendImg(files);//前台图片上传函数 }, } } ); });
4.图片上传函数:
function SendImg(files) { for(var i = 0;i < files.length;i++){ data = new FormData(); data.append("file", files[i]); url = "/ImgUploads/"; $.ajax({ data: data, type: "POST", url: url, cache: false, contentType: false, processData: false, dataType : "json", success: function(result) {// result是返回的值 console.log(result); $('#content').summernote('insertImage', result.FileUrl, result.FileName); }, error:function(){ alert("上传失败!") } }); } }
二、后台图片接收
1.添加url
url(r'^ImgUploads/$', ImgUploads),
2.view里面写ImgUploads函数
@csrf_exempt def ImgUploads(req): file = req.FILES.get('file') # 获取文件对象,包括文件名文件大小和文件内容 #print(file) curttime = time.strftime("%Y-%m-%d") upload_url = os.path.join(settings.MEDIA_ROOT, 'django-summernote', curttime) # print(upload_url) folder = os.path.exists(upload_url) if not folder: os.makedirs(upload_url) print("创建文件夹") if file: file_name = file.name if os.path.exists(os.path.join(upload_url, file_name)): name, etx = os.path.splitext(file_name) finally_name = name + "_" + get_random_str() + etx #print(name, etx, finally_name) else: finally_name = file.name upload_file_to = open(os.path.join(upload_url, finally_name), 'wb+') for chunk in file.chunks(): upload_file_to.write(chunk) upload_file_to.close() file_upload_url = settings.MEDIA_URL + 'django-summernote/' + curttime + '/' + finally_name # print(file_upload_url) # 构建返回值 response_data = {} response_data['FileName'] = file_name response_data['FileUrl'] = file_upload_url response_json_data = json.dumps(response_data) # print(response_data, response_json_data) return HttpResponse(response_json_data) else: return HttpResponse()
4.怕文件重名,写个随机函数get_random_str(),也写在view里面
def get_random_str(): uuid_val = uuid.uuid4() uuid_str = str(uuid_val).encode('utf-8') md5 = hashlib.md5()#md5实例 md5.update(uuid_str)#拿uuid的md5摘要 return md5.hexdigest()#返回固定长度的字符串
- DateTime.ToString()输出"年/月/日 时:分:秒"的格式
- Flash在线拍摄用户头象
- win7 64位下如何折腾Tubro C 3.0
- TweenLite的又一应用:图片的拼图加载效果
- mysql创建数据表时如何判断是否已经存在?
- 温故知新:接口的隐式实现与显式实现
- 也谈枚举ToString()性能的改进
- silverlight:利用telerik中的zip类对字符串进行压缩、解压
- 索引,视图,存储过程和触发器文档
- 重点解读:用小程序给公众号涨粉10w的7大行业案例
- 网络域名与注册商标冲突的解决途径
- 网站代码优化我们必须要做的那些事
- 真是热闹! Slade.com等多个域名被曝交易
- python编码问题之"encode"&"decode"
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Python异常处理
- Python装饰器实现函数动态类型检查
- 如何自动填充SQL语句中的公共字段
- 面试官喜欢问的Java编译期与运行期问题总结全了
- 面试5年25K程序员回答不出来为什么Java的main方法必须是public static void?
- Python装饰器
- 3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”
- 面试官:说说SpringBoot中Spring容器的启动过程
- Python IO
- Python解析式
- 面试官:Tomcat 的调优怎么做?你的最佳实践有哪些?
- Tomcat源码分析
- lazy-mock ,一个生成后端模拟数据的懒人工具
- Python拉链法和开地址法实现字典
- Springboot2 整合redis发布订阅 解决订阅多个频道重复代码过多 创建很多bean问题