Flask web开发 处理Ajax请求
本文介绍如何处理ajax请求,
一、处理ajax的post请求
举例一:
js代码举例如下:
var id = obj.parentNode.parentNode.id;
$.post("/delitem/"+id, {}, function(data){
showData(data);
},"json");
对应的flask代码举例如下:
@app.route('/delitem/<id>', methods=['POST'])
def delitem(id):
db.delItem(id) #业务代码
#db.data是python列表对象(元素是字典),返回到浏览器后就是js数组(元素是Josn对象
return jsonify({"result":db.data})
注意,处理函数可以return两种格式的数据。一是合法的json格式的字符串。
二是通过jsonify 方法将其参数转为一个合法的'Response'对象,jsonify方法的参数有如下几种形式:
1)是个字典对象。 到了浏览器,js获取到的就是一个js对象。
2)如 1个或多个参数名= python对象 的格式, 到了浏览器,js获取到的就是一个js对象,该js对象有一个属性名叫result。如
jsonify(a=1,result=[1,2,3],c="hello")
这时到了浏览器,js获取到的就是一个js对象,该js对象就有三个属性,分别是 a, result, c 。其中result属性的值是个数组。
举例2:
js代码如下
var id = $("#recordid").val();
var name = $("#recordname").val();
var msg = $("#recordinfo").val();
$.post("/additem", {"id":id,"name":name,"msg":msg}, function(data){
showData(data);
},"json");
对应的flask代码如下:
@app.route('/additem', methods=['POST'])
def additem():
db.addItem(request.form.get('id'),request.form.get('name'),request.form.get('msg'))
return jsonify({"result":db.data})
注意,@app.route 方法中需要指定methods参数为POST
可以看出,在flask中,通过request.form.get 来获取ajax发出的请求。 get方法还可以带第2个参数缺省值,如果指定的参数名不存在,有缺省值的则返回缺省值,没有的话返回None。注意,如果浏览器不是通过ajax发来的post请求,而是通过form提交的,则用request.form[表单元素名]来获取表单元素中的值。
二、处理ajax的get请求
与post请求类似,区别是:
1)@app.route 方法中不需要指定methods参数,因为缺省就是响应get请求
2)获取js发来的参数是用 request.args.get方法
Flask web开发 处理Ajax请求的更多相关文章
- Flask web开发 处理POST请求(登录案例)
本文我们以一个登录例子来说明Flask对 post请求的处理机制. 1.创建应用目录,如 mkdir example cd example 2.在应用目录下创建 run.py文件,内容如下 fr ...
- Flask web开发 处理Session
本文我们在上篇文章<Flask web开发 处理POST请求(登录案例)>的基础上,来讲述Flask对session的支持. 在上面案例上,我们需要修改和新增如下功能 1.登录成功后的 ...
- Flask web开发 请求拦截和预处理
我们在开发WEB应用时,往往会需要对所有的url请求进行拦截,做些预处理,比如权限处理.日志等统一处理. 本文介绍一下Flask中的处理机制.我们通过一个简单的例子来说明. 1.编写一个简单应用 ru ...
- 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)
目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构 前言 学习Python也有一个半月时间了,学到现在感觉 ...
- 《Flask Web开发实战:入门、进阶与原理解析(李辉著 )》PDF+源代码
一句话评价: 这可能是市面上(包括国外出版的)你能找到最好的讲Flask的书了 下载:链接: https://pan.baidu.com/s/1ioEfLc7Hc15jFpC-DmEYBA 提取码: ...
- Flask Web开发读书笔记
开篇:目前想自学Flask Web开发--基于Python,找了几本书准备啃啃,同时也会分享读书笔记.希望和大家一起进步. Flask是小型框架,可以算是微框架,但是他的功能还是比较多 Flask有三 ...
- 学习参考《Flask Web开发:基于Python的Web应用开发实战(第2版)》中文PDF+源代码
在学习python Web开发时,我们会选择使用Django.flask等框架. 在学习flask时,推荐学习看看<Flask Web开发:基于Python的Web应用开发实战(第2版)> ...
- Flask Web开发从入门到放弃(一)
第1章 章节一 01 内容概要 02 内容回顾 03 路飞学城之加入购物车 04 路飞学城之结算 05 路飞学城之立即支付 06 路飞学城之后续计划 07 Flask框架简介和快速使用 08 FLas ...
- web api 解决Ajax请求跨域问题
前端ajax请求接口时,经常出现跨域问题,当然了解决方法有很多种,比如: http://www.jb51.net/article/68424.htm 我本人恰好前后端都会一点,所以直接在接口端处理. ...
随机推荐
- java从c struct传来的字节数组中取值
public int getInt(byte[] array,int index) { return (array[index] & 0xff) | (array[index + 1] & ...
- 基于Visual C++2013拆解世界五百强面试题--题14-循环删除
有一个数组a[1000]存放0-1000,要求每隔二个数删除一个数,到末尾时循环到开头继续进行,求最后一个被删掉数的原始下标. 看到题目可以用循环链表保存这些数,然后循环删除,大大减少了一些复杂的边界 ...
- HDU 1848 Fibonacci again and again
题解:尼姆博弈,对于1至1000计算SG函数,每次取最小的前继值,SG值异或为0则为P-position. #include <cstdio> #include <cstring&g ...
- docpad建站记录
记一下用docpad建站的过程作为备忘.不定时更新 why docpad wordpress对我来说太过于臃肿,我就想要个代码干净的小站来写东西.想要个markdown为基础的静态站. 比较流行的St ...
- hive 0.10 0.11新增特性综述
我们的hive版本升迁经历了0.7.1 -> 0.8.1 -> 0.9.0,并且线上shark所依赖的hive版本也停留在0.9.0上,在这些版本上有我们自己的bug fix patch和 ...
- android使用全局变量的两种方法
在我们使用android编写程序的时候,少不了想利用全局变量,但是面向对象语言和过程语言区别很大,不再是include就可以的.这里我写了使用全局变量的两种方法: 1.使用applicati ...
- 3.3 用NPOI操作EXCEL--生成一张工资单
这一节,我们将综合NPOI的常用功能(包括创建和填充单元格.合并单元格.设置单元格样式和利用公式),做一个工资单的实例.先看创建标题行的代码: //写标题文本 HSSFSheet sheet1 = h ...
- android四大组件详解--摘
Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...
- MySQL 5.6.x 配置数据库主从复制
[转]http://blog.csdn.net/lwprain/article/details/10966837 备注: 在配置之前如果之前配置过主从没成功的话, 最好把master数据库目录下的my ...
- OSX/iOS 播放系统声音
方法1: 系统会自带了些声音,有时候一些操作用必要自己播放一下声音提醒一下,用bash的直接say something就ok了,写代码的时候呢?原来很简单的,一句: [[NSSound soundNa ...