0


requests库post请求参数data、json和files的使用,postman的各种数据格式

x-www-form-urlencoded

application/x-www-form-urlencoded

application/json

是两种不同的 HTTP 请求体格式,它们在 Python 中的处理方式也不同。

application/x-www-form-urlencoded

是 Web 表单默认的提交方法,浏览器会将表单数据编码为 key-value 键值对,并将其放在请求体中。该格式数据可以通过 Python 中的标准库

urllib.parse

进行解析,例如:

from urllib.parse import parse_qs

# 请求体数据
data =b'name=John&age=30'# 从请求体中解析出表单数据
form_data = parse_qs(data.decode())

此时

form_data

的结果为:

{'name': ['John'], 'age': ['30']}

application/json

是一种常用的数据格式,在这种格式下,请求体中的数据会被编码成 JSON 格式,并放在请求体中,需要使用

json

库进行解析。例如:

import json

# 请求体数据
data =b'{"name": "John", "age": 30}'# 从请求体中解析出 JSON 数据
json_data = json.loads(data)

此时

json_data

的结果为:

{'name': 'John', 'age': 30}

综上所述,

application/x-www-form-urlencoded

application/json

的处理方式有所不同,需要根据实际情况进行选择和使用。

form-data

multipart/form-data

是一种比较常见的 HTTP 请求体格式,常用于对二进制或文本文件进行上传。这种格式不同于

application/x-www-form-urlencoded

,它可以在请求体中传输二进制数据,也就是允许上传文件。

在 Python 中,处理

multipart/form-data

类型的请求体可以使用

requests

库中的

post

方法。例如:

import requests

# 文件路径
file_path ='example.jpg'# 发送 POST 请求
response = requests.post('http://example.com/upload', 
    files={'file':open(file_path,'rb')})

在这个例子中,我们使用

requests

库的

post

方法发送一个

multipart/form-data

类型的 POST 请求,上传指定路径下的文件。使用字典形式的

files

参数来传递上传的文件,字典的 key 为提交数据的字段名称,字典的 value 为文件对象(使用 Python 内置

open()

函数打开文件对象)。

如果请求体中包含了其他的表单数据,可以使用字典形式的

data

参数来传递这些数据,类似于

application/x-www-form-urlencoded

的格式。示例:

import requests

# 文件路径和其他表单数据
file_path ='example.jpg'
data ={'name':'John','age':'30'}# 发送 POST 请求
response = requests.post('http://example.com/upload', 
    files={'file':open(file_path,'rb')},
    data=data
)

在此例子中,我们除了上传文件之外,还将一个包含姓名和年龄的表单数据一并上传。字典形式的

data

参数用来传递这些数据。

requests库post请求参数data、json和files的使用

参考:https://blog.csdn.net/qq_31699845/article/details/124849600

传文件和表单示例

如果要传文件,可以使用

requests

库的

files

参数来实现文件上传。使用

files

参数,它将自动采用

multipart/form-data

格式来编码请求体数据。

下面是一个例子,展示如何在客户端发送文件上传请求,包括一个文件和一些文本数据:

import requests

url ='http://localhost:8000/upload'
files ={'file':open('example.txt','rb')}
data ={'name':'John','age':'30','gender':'Male'}
response = requests.post(url, files=files, data=data)print(response.text)

在上面的代码中,我们向

http://localhost:8000/upload

发送了一个

POST

请求。

files

参数是一个字典类型。字典的键就是表单字段名,值可以是字符串或者文件字节。在上面的代码中,

example.txt

是一个需要上传的文本文件。表单中的其他数据采用了

data

参数传递,也是一个字典类型。

在服务端,我们可以使用 FastAPI 框架来解析上传的文件和表单数据:

from fastapi import FastAPI, File, Form, UploadFile

app = FastAPI()@app.post("/upload")asyncdefcreate_upload_file(file: UploadFile = File(...), name:str= Form(...), age:int= Form(...), gender:str= Form(...)):
    content =awaitfile.read()return{"filename":file.filename,"name": name,"age": age,"gender": gender}

在上面的代码中,我们定义了一个

/upload

的路由,使用了 FastAPI 框架。使用

UploadFile

类型解析上传的文件,使用

Form

类型解析表单中的其他数据。在

create_upload_file

函数中,使用了

file.read()

方法来获得上传文件的内容。可以将上传文件的文件名、表单中的其他数据返回给客户端。

在本例中,客户端将文件和表单数据一起发送到服务器,而服务器使用

UploadFile

Form

类型来解析它们。FastAPI 框架允许我们很容易地把所有这些格式的请求数据都组合在一起。”

希望这个例子能够帮助你。

标签: json postman lua

本文转载自: https://blog.csdn.net/qq_15821487/article/details/131489157
版权归原作者 愚昧之山绝望之谷开悟之坡 所有, 如有侵权,请联系我们删除。

“requests库post请求参数data、json和files的使用,postman的各种数据格式”的评论:

还没有评论