Flask request 对象详情
前言:
一个完整的 HTTP
请求,包括客户端向服务端发送的 Request
请求和服务器端发送的 Response
响应。为了能方便的访问获取请求及响应报文信息,Flask
框架提供了一些内建对象,下面就来说一下 Flask 针对请求提供的内建对象request
。
1、request请求对象
request
请求对象封装了从客户端发来的请求报文信息,我们能从request
对象上获取请求报文中的所有数据。 其大部分功能是由依赖包Werkzeug
完成的,Flask
做了一些特定功能的封装,形成了request
请求对象。
1.1request请求对象的使用
导入flask包中的request对象,就可以直接在请求函数中使用该对象了。
from flask import request @app.route('/user', methods=['GET', 'POST']) def user(): if request.method == 'POST': user_name = request.form['user_name'] return 'user :{} add success!'.format(user_name) else: user_id = request.args.get('user_id', 0) return 'Hello user:{}!'.format(user_id)
上述代码中:request对象中的method
变量可以获取当前请求的方法,即GET、POST、PUT、DELETE等;form变量获取POST请求form-data表单中的数据,本质是一个字典,如果提交的表单中没有user_name
,则会返回 400 Bad Request
的错误,当然也可以使用异常捕获机制处理。request.args.get()
方法获取的是GET请求的url中的参数(问号?之后的部分),第一个参数指定获取的 url 参数的 key,第二个参数指定默认值,当 key 不存在时,则返回默认值。
如下:
GET请求
POST请求
除此之外,请求报文中的其他信息都可以通过 request 对象提供的属性和方法获取,常用的部分如下:
url
:请求的url
args:Werkzeug
的ImmutableMultiDict
对象,存储解析后的查询字符串,可通过字典方式获取键值blueprint
:当前蓝本的名称cookies
:一个包含所有随请求提交的cookies
的字典data
:包含字符串形式的请求数据endpoint
:于当前请求相匹配的端点值files:Werkzeug
的MultiDict
对象,包含所有上传文件form:Werkzeug
的ImmutableMultiDict
对象,包含解析后的表单数据values:Werkzeug
的CombinedMultiDict
对象,结合了args
和form
属性的值get_data(cache=True,as_text=False,parse_from_data=False):
获取请求中的数据,默认读取为字节字符串(bytestring),as_text为True则返回解码后的unicode
字符串get_json(self,force=False,silent=False,cache=True)
:作为 json 解析并返回数据,如果MIME
类型不是 json,返回 None(除非 force 设为 True);解析出错则抛出Werkzeug提供的BadRequest
异常(如果未开启调试模式,则返回400错误响应),如果 silent 设为 True 则返回 None;cache 设置是否缓存解析后的 json 数据headers:Werkzeug
的EnvironHeaders
对象,包含请求的头部字段json
:包含解析后的 json 数据,内部调用 get_json(),可通过字典的方式获取键值method
:请求的 HTTP 方法referrer
:请求发起的源 url,即referer
scheme
:请求的URL模式(http 或 https)user_agent
:用户代理(User Agent),包含了用户的客户端类型,操作系统类型等信息
到此这篇关于 Flask request
对象详情的文章就介绍到这了,更多相关 Flask request 对象内容请搜索猪先飞以前的文章或继续浏览下面的相关文章希望大家以后多多支持猪先飞!
原文出处:https://juejin.cn/post/7030009163803525133
相关文章
- 这篇文章主要介绍了java8如何用Stream查List对象某属性是否有重复的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-09-11
- 这篇文章主要介绍了R语言删除指定变量或对象的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-05-06
- 这篇文章主要介绍了JavaScript预解析,对象的的相关资料,小编觉得这篇文章写的还不错,需要的朋友可以参考下,希望能够给你带来帮助...2021-11-10
如何在Spring WebFlux的任何地方获取Request对象
这篇文章主要介绍了如何在Spring WebFlux的任何地方获取Request对象,帮助大家更好的理解和使用springboot框架,感兴趣的朋友可以了解下...2021-01-26牛叉的Jquery――Jquery与DOM对象的互相转换及DOM的三种操作
只有jQuery对象才能调用jQuery类库的各种函数,同样有些dom对象的属性和方法在jQuery上也是无法调用的,不过基本上jQuery类库提供的函数包含了所有的dom操作。这就需要我们知道如何将jQuery对象和DOM的相互转换的方法。1...2015-10-30C#中HttpWebRequest、WebClient、HttpClient的使用详解
这篇文章主要介绍了C#中HttpWebRequest、WebClient、HttpClient的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25- 今天小编就为大家分享一篇python 实现Flask中返回图片流给前端展示,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-04-27
- js调试中经常会碰到输出的内容是对象而无法打印的时候,光靠alert只能打印出object标示,却不能打印出来里面的内容,甚是不方便,于是各方面整理总结了如下一个函数,能够将数组或者对象这类的结果一一打印出来,具体代码如下: fu...2015-10-21
- 本文给大家介绍如何替换json对象中的key,通过实例代码给大家介绍key的替换方法,代码也很简单,需要的朋友参考下吧...2021-06-02
- 这篇文章主要介绍了javascript self对象使用详解的相关资料,需要的朋友可以参考下...2016-10-20
ActiveX部件不能创建对象:dm.dmsoft代码:800A01AD
vbs调用插件报:ActiveX部件不能创建对象,代码:800A01AD,一般是因为病毒导致dll文件丢失或者64系统问题导致,需要的朋友可以参考下...2020-06-30- 在web页面中,图片居左,内容居右排列,是非常常见的效果,它也就是媒体对象,它是一种抽象的样式,可以用来构建不同类型的组件。本文给大家介绍Bootstrap媒体对象的实现,感兴趣的朋友一起学习吧...2016-05-04
- 这篇文章主要为大家介绍了JavaScript事件对象,了解JavaScript事件...2016-01-26
- 这篇文章主要介绍了Xml中使用foreach遍历对象实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-12-04
python爬虫用request库处理cookie的实例讲解
在本篇内容里小编给大家整理的是一篇关于python爬虫用request库处理cookie的实例讲解内容,有需要的朋友们可以学习参考下。...2021-02-21解决SpringCloud Feign传对象参数调用失败的问题
这篇文章主要介绍了解决SpringCloud Feign传对象参数调用失败的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-06-24- 这篇文章主要介绍了JS实现简单面向对象的颜色选择器,以完整实例形式分析了JavaScript基于面向对象实现颜色选择器的具体步骤与实现技巧,需要的朋友可以参考下...2016-04-23
- 下面小编就为大家带来一篇javascript创建对象的几种模式介绍。小编觉得挺不错的,现在分享给大家,也给大家做个参考...2016-05-09
- 这篇文章主要介绍了vue - props 声明数组和对象操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2020-07-30
微信小程序 wx.request(object) API详解及实例代码
这篇文章主要介绍了微信小程序 wx.request(object) API详解及实例代码的相关资料,需要的朋友可以参考下...2016-10-02