1、服务端,首先使用web框架写一个简单的接口,接收两个参数,page和size,这也是分页参数,返回数据:状态码、信息、参数值。
- @bp.route('/translation/', methods=['GET'])
- def translation():
- args = request.args
- page = args.get('page')
- size = args.get('size')
- response = {'status' : 200,'message' : '返回的参数',
- 'size': size,'page': page
- }
- print(response)
- return Response(json.dumps(response))
服务端接收到的数据
2、客户端或者请求端是怎么发送的请求的,使用requests库进行模拟发送。urlencode 方法是用来对url进行编码的可以将字典,编译成page=1&size=50格式
- import requests
- import json
- from urllib.parse import urlencode
-
- def translation():
- params = {
- 'page': 1,
- 'size':50
- }
- param_encode = urlencode(params)
- url = 'http://127.0.0.1:5000/auth/translation' + '?' + param_encode
- response = requests.get(url=url)
- print(json.loads(response.text))
客户端接受数据:

1、使用json格式来进行传送参数,定义接收参数,username,password,返回数据:状态码,信息,与参数值
- @bp.route('/translation/', methods=['POST'])
- def translation():
- username = request.json.get('username')
- password = request.json.get('password')
- response = {'status': 200, 'message': '返回的参数',
- 'username': username, 'password': password
- }
- print(response)
- return Response(json.dumps(response))
服务端接收数据:

2、客户端使用requests.post 方法,在浏览器请求的使用一般使用的参数名称是payload。json可以直接使用字典,也可以使用字符串。前端传参一般是ajax方法
- import requests
- import json
-
- def translation():
- json_data = {
- 'username': '张三',
- 'password':'123456'
- }
- url = 'http://127.0.0.1:5000/auth/translation/'
- response = requests.post(url=url, json=json_data)
- print(json.loads(response.text))
客户端接收数据:

3、使用form-data格式来进行传参定义接收参数,username,password,返回数据:状态码,信息,与参数值
- @bp.route('/translation/', methods=['POST'])
- def translation():
- username = request.form.get('username')
- password = request.form.get('password')
- response = {'status': 200, 'message': '返回的参数',
- 'username': username, 'password': password
- }
- print(response)
- return Response(json.dumps(response))
服务端接收数据:

4、客户端使用requests.post 方法使用data参数,一般是字典格式,前端一般使用form > input标签,postman,也是使用参数+值的方法
- import requests
- import json
-
- def translation():
- form_data = {
- 'username': '张三',
- 'password':'123456'
- }
- url = 'http://127.0.0.1:5000/auth/translation/'
- response = requests.post(url=url, data=form_data)
- print(json.loads(response.text))
客户端接受数据:

总结:使用form-data 与json 传输的方法很相似,但是要把参数data=与json= 做为修改,服务端的接受也只是request.form 与request.json的变更而已。
注意点:request.from与request.json 不能够同时接收参数,不能够同时存在。不然会报错,服务端会出现400的错误,客户端会出现400 Bad Request
客户端出错:
Failed to decode JSON object: None
Bad Request
服务端出错:
127.0.0.1 - - [24/Nov/2022 15:02:06] "POST /auth/translation/ HTTP/1.1" 400 -
Xmind 思维导图:
