我很久之前写了一篇前端vue利用blob对象下载文件,有些人私信我,如果后端返回流失败,给出的json对象该怎么获得?前端获取的流怎么能获取原文件名?其实在那篇文章之后,我就已经针对这两个问题进行了优化,于是就有了这篇. 首先,针对第一个问题,如果能正常获得文件流,前端则以blob对象承接,反之,一般后端会传一个json对象告诉你失败了以及失败原因,这个时候json对象由于请求中responseType: 'blob'的声明之后,也会生成文件,但是文件内容是乱码,这个时候,我们必须要用到File…
flask用宏渲染表单模板时,表单提交后,提交的内容符合DataRequired()校验, 但是form.validate_on_submit()返回的是False, 原因可能是表单模板中的<form>中没有指明请求的方法'get'或'post' flask_wtf类的validate_on_submit()方法校验两个地方:1-表单提交的方法 2-提交的内容非空 如果没有指定请求的方法,这个校验方法就会返回False 下面代码中,如果没有method="post",那么返…
选用模板常用的是webpack与webpack-simple.webpack-simple是基于Webpack@2.1.0-beta.25进行配置的版本,而webpack模板则是基于Webpack ^1.3.2配置的. 其中,最大的区别是webpack-simple没有vue-router的中间件,不需要路由时推荐使用: 同时webpack-simple没有格式的检测.(个人认为不太重要), 使用webpack模板时格式检测也是可以不选的. 深入vue-cli的工程模板  https://www…
概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify类似的功能,在前端资源管理这方面,它提供了更加出色的功能.官方基于webpack提供了两种项目模板,分别是vue-webpack-simple模板和vue-webpack模板,今天我们将介绍官方提供的这两种项目模板,并用vue-webpack-simple模板创建一个简单的示例. 本文的Demo和源…
概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直接写在页面中,这对于一些复杂的页面来说,不是好事情,代码的可读性会较差,也不便于管理. 其次,定义在HTML页面中的组件,无法被其他页面重用,我们只能通过复制粘贴的方式将组件代码拷贝到其他页面,这也违反了DRY原则.既然组件是Vue.js的重要概念,我们就应该利用好它. 为了解决这些问题,Vue.j…
利用模板将HTML从JavaScript中抽离 一.当需要注入大段的HTML标签到页面中时,应该使用服务器渲染(从服务器加载HTML标签) 该方法将模板放置于服务器中使用XMLHttpRequest对象来获取外部标签(如多页应用) function loadDialog(name, oncomplete) { var xhr = new XMLHttpRequest(); xhr.open('get', '/js/dialog/'+name, true); xhr.onreadystatecha…
网站中,许多页面的侧边栏是相同的.例如: 分类列表页,与文章详情页的侧边栏都包含 最新文章 最新评论 统计计数 这些相同的侧边栏数据也是动态的,并不是固定的. 在每个 controller 里都写一遍数据读取逻辑,并赋值给模板,这样做有几个弊端 重复编码量不小.即使提取成函数,也要手动将变量传递给模板,controller 中无法专注于业务逻辑 不利于模块化 简单粗暴的做法 - 全局 view share 之前,我用了一种简单粗暴的解决方案: 在 app/Providers/AppService…
当程序逐渐变大时,很多时候我们需要在javaScript和CSS代码中使用jinja2提供的变量值,甚至是控制语句.比如,通过传入模板的theme_color变量来为页面设置主题色彩,或是根据用户是否登陆来决定是否执行某个javaScript函数. 需要注意,只有使用render_template()传入的模板文件才会被渲染,如果把jinja2(模板引擎)代码写在单独的javaScript或CSS文件中,尽管你在HTML中引入了它们,但他们包含的jinja代码不会被执行. 下面是一些注意点: 行…
概述 browserify是一个 CommonJS风格的模块管理和打包工具,上一篇我们简单地介绍了Vue.js官方基于browserify构筑的一套开发模板.webpack提供了和browserify类似的功能,在前端资源管理这方面,它提供了更加出色的功能.官方基于webpack提供了两种项目模板,分别是vue-webpack-simple模板和vue-webpack模板,今天我们将介绍官方提供的这两种项目模板,并用vue-webpack-simple模板创建一个简单的示例. 本文的Demo和源…
概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直接写在页面中,这对于一些复杂的页面来说,不是好事情,代码的可读性会较差,也不便于管理. 其次,定义在HTML页面中的组件,无法被其他页面重用,我们只能通过复制粘贴的方式将组件代码拷贝到其他页面,这也违反了DRY原则.既然组件是Vue.js的重要概念,我们就应该利用好它. 为了解决这些问题,Vue.j…