在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json。

data与json既可以是str类型,也可以是dict类型。

区别:

1、不管json是str还是dict,如果不指定headers中的content-type,默认为application/json

2、data为dict时,如果不指定content-type,默认为application/x-www-form-urlencoded,相当于普通form表单提交的形式

3、data为str时,如果不指定content-type,默认为text/plain

4、json为dict时,如果不指定content-type,默认为application/json

5、json为str时,如果不指定content-type,默认为application/json

6、用data参数提交数据时,request.body的内容则为a=1&b=2的这种形式,用json参数提交数据时,request.body的内容则为'{"a": 1, "b": 2}'的这种形式

示例

Django项目pro_1如下:

urls.py:

from django.conf.urls import url

from django.contrib import admin

from app01 import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

url(r'^index/', views.index),

]

views.py :

from django.shortcuts import render, HttpResponse

def index(request):

print(request.body)

"""

当post请求的请求体以data为参数,发送过来的数据格式为:b'username=amy&password=123'

当post请求的请求体以json为参数,发送过来的数据格式为:b'{"username": "amy", "password": "123"}'

"""

print(request.headers)

"""

当post请求的请求体以data为参数,Content-Type为:application/x-www-form-urlencoded

当post请求的请求体以json为参数,Content-Type为:application/json

"""

return HttpResponse("ok")

在另一个Python程序中向http://127.0.0.1:8080/index/发送post请求,打印request.body观察data参数和json参数发送数据的格式是不同的。

example1.py :

import requests

r1 = requests.post(

url="http://127.0.0.1:8089/index/",

data={

"username": "amy",

"password": "123"

}

# data='username=amy&password=123'

# json={

# "username": "amy",

# "password": "123"

# }

# json='username=amy&password=123'

)

print(r1.text)

以上这篇Python requests.post方法中data与json参数区别详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

时间: 2020-04-30

python request.post 字典参数以json_Python requests.post方法中data与json参数区别详解相关推荐

  1. python post json参数,Python requests.post方法中data与json参数区别详解

    在通过requests.post()进行POST请求时,传入报文的参数有两个,一个是data,一个是json. data与json既可以是str类型,也可以是dict类型. 区别: 1.不管json是 ...

  2. python中的items方法_Python 字典的items()方法和iteritems()方法有什么不同?【面试题详解】...

    今天爱分享给大家带来Python 字典的items()方法和iteritems()方法有什么不同?[面试题详解],希望能够帮助到大家. 字典是 Python 语言中唯一的映射类型.映射类型对象里哈希键 ...

  3. python小括号表示什么数据类型_Python3中小括号()、中括号[]、花括号{}的区别详解...

    介绍 在Python语言中最常见的括号有三种,分别是:小括号().中括号[].花括号{}:其作用也不相同,分别用来代表不同的Python基本内置数据类型. 小括号() Python中的小括号(): 代 ...

  4. python中什么是可变参数_详解Python的三种可变参数

    详解Python的三种可变参数 可变参数 可变参数应该最简单,在C/C++和Java等语言中都有,就是用*号来表示,例如 def testArg(*arg) 你可以传入任意多个元素(包括0)到参数中, ...

  5. Python中__init__和__new__的区别详解

    __init__ 方法是什么? 使用Python写过面向对象的代码的同学,可能对 __init__ 方法已经非常熟悉了,__init__ 方法通常用在初始化一个类实例的时候.例如: # -*- cod ...

  6. python discover()没有加载测试用例_对python_discover方法遍历所有执行的用例详解

    当我们写了一个单个py的测试文件时直接运行就ok了,但当我们有很多很多个这样的py时,难道要一个一个的点击来运行吗,当然不是.我们可以通过discover方法来找到所有的用例. 下面直接举例说明dis ...

  7. Python中is与==的使用区别详解

    >>> a = 1000 >>> b = 1000 >>> print(id(a),id(b)) 2689566689904 2689566688 ...

  8. python中average什么意思_在Python3 numpy中mean和average的区别详解

    mean和average都是计算均值的函数,在不指定权重的时候average和mean是一样的.指定权重后,average可以计算一维的加权平均值. 具体如下: import numpy as np ...

  9. python for item in items,python 字典item与iteritems的区别详解

    综述迭代器 对于原生支持随机访问的数据结构(如tuple.list),迭代器和经典for循环的索引访问相比并无优势,反而丢失了索引值(可以使用内建函数enumerate()找回这个索引值).但对于无法 ...

最新文章

  1. 微信公众号开发 微信消息回复开发 文本消息 图片消息开发
  2. 用进化算法来优化SVM的参数C和Gamma——利用SCOOP库进行分布式加速计算
  3. [NewLife.XCode]实体类详解
  4. Recursive sequence HDU - 5950
  5. 膜拜大佬!不同层级的Android开发者的不同行为,社招面试心得
  6. 数组(array)(小谈)
  7. python字典遍历 没有顺序_Python实现字典的遍历与排序功能示例
  8. 使用CRT调试功能来检测内存泄漏
  9. ajax要不要入口函数,Ajax - SegmentFault 思否
  10. C语言项目 ---- 纸牌游戏(详细讲解 + 全部代码 + 运行图片)
  11. 计算机网络工程课程设计
  12. c语言12个实验报告,C语言实验报告合集
  13. JavaScript 参考手册
  14. 微信消息实现自动推送--方式一 成功啦 进来学
  15. 50个最常用的Unix/Linux命令
  16. 互联网大佬扎堆出书 不为赚钱只为粉丝
  17. 新股发行制度五年改革历程
  18. 2021年中国电梯行业现状及主要企业产销情况分析[图]
  19. 大学计算机基础网络配置实验报告答案,2008大学计算机基础实验报告参考答案...
  20. 怪物之心无法触发_异度神剑2怪物之心任务怎么做_力男支线任务怪物之心流程介绍_3DM单机...

热门文章

  1. 类的本质 Objective-C基础
  2. 制作旋转led_LED用蓝宝石衬底及加工工艺!
  3. .net 怎么使用github_如何正确的使用ncnn的Extractor
  4. flask 模板 php,Flask四之模板
  5. esp8266 接收udp广播_ESP8266_21基于ESP8266的一键配网
  6. Android开发之如何在debug模式下打出release正式包
  7. java 固定listview_listview Button始终放在底部示例
  8. Swift--数组和字典(一)
  9. mysql数据库错误1317_请问为什么我的mysql数据库一直连接不上?两天了还没找到错误,请帮我看一下呀急急急...
  10. 运维人员打字耍不要快_法考经验与教训 —— 打字