【Flask】flask中get方法和post方法区别
对于post和get在我以前的认知下一直认为是:
前端发送给后端就称为post
前端需要从后端返回就用get
但是在开发过程中发现了不仅仅如此
区别
GET
意图:获取(GET) 信息。你只是想读取服务器上已经存在的资源,你不打算改变服务器上的任何东西。
数据的位置:你把这个书号写在一张公开的便签(URL查询字符串)上递给管理员。比如 …/load_session?session=12345。大家都能看到这张便签
那么这个数据怎么定义的呢
数据定义:GET http://127.0.0.1:5001/api/load_session?session=a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6
协议: https://
域名: www.google.com
路径: /search
查询字符串 (Query String): ?q=flask&tbm=isch
查询字符串就是跟在问号 ? 后面的那部分。它的特点是:
- 以 ? 开始。
- 由一个或多个键值对组成。
- 每个键值对的格式是 key=value。
- 多个键值对之间用 & 符号隔开。
特点
安全:重复问多少次同一本书,书本身不会有任何变化。
幂等(Idempotent):重复请求的结果总是一样的。
可缓存:因为结果不变,浏览器可以把结果缓存起来,下次再要同一本书时,可以直接从缓存里拿,速度更快。
代码中获取方式
request.args.get('session')
就会返回字符串 ‘a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6’。
post
提交(POST) 数据,通常是为了在服务器上创建(Create)一个新的资源,或者更新(Update)一个已有的资源。这个操作会改变服务器的状态。
你提供的数据:你要邮寄的包裹本身,里面包含了丰富的、可能很私密的内容,比如用户名、密码、聊天消息等。
数据的位置:你把包裹(数据)放在一个不透明的信封或箱子(HTTP请求的Body)里交给邮局。外面的人看不到里面的具体内容。
结果:邮局处理了你的包裹,可能会给你一个回执(比如“注册成功”)。
对于比较隐私的数据,是不能再url中传递的,所以就需要用post方式
代码中获取方式
data = request.json
总结
如果前端发送数据是为了指定它想要什么,用 GET。
如果前端发送数据是为了让后端保存什么或处理什么,用 POST。