gpt4 book ai didi

python - 如何修复 web 中返回 request.get_json 并获取 null 的问题?

转载 作者:太空宇宙 更新时间:2023-11-03 20:34:47 30 4
gpt4 key购买 nike

我正在尝试使用flask-socket从客户端请求json并希望将此对象返回到网络。我尝试打印它在终端中工作的对象,但当我打开本地主机时显示 null。我该如何解决这个问题?

或者我应该在客户端中使用套接字来发送消息并在服务器中获取它?

代码 Server :


from flask import Flask, request, jsonify, Response
import json
app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def add_message():
jsonData = request.get_json()
print(jsonData)
return jsonify(jsonData)


if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1')

代码 Client :

import requests
while 1:
requests.post('http://127.0.0.1:5000/', json={"mytext": "lalala"})

我希望在网络上可以显示 the json data from my client side such as{"mytext":"lalala"}而不是空。 My Output ..此外,我想从客户端传递动态值并将其返回到网络上。非常感谢!

最佳答案

  • 为了检索键值对
    • 对于 GET 请求:您必须使用 request.args docs
    • 对于 POST 请求:您必须使用 request.get_json() docs

对于获取路径参数的请求,您必须将您的参数注册为 docs

@app.route('/<name>', methods=['GET'])
def add_message_get_param(name):
print(name)
return jsonify({'name': name})

现在正如您所说,您想要传递一个 json。但您的浏览器屏幕截图表明您使用 /hello 调用端点。为了传递键值对,您必须执行类似 /?mykey=myvalue 的操作。为了完整性,我添加了路径参数

因此,您的服务器必须变得

from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/', methods=['GET'])
def add_message_get():
jsonData = request.args
print(jsonData)
return jsonify(jsonData)

@app.route('/<name>', methods=['GET'])
def add_message_get_param(name):
print(name)
return jsonify({'name': name})

@app.route('/', methods=['POST'])
def add_message_post():
jsonData = request.get_json()
print(jsonData)
return jsonify(jsonData)

if __name__ == '__main__':
app.run(debug=True, host='127.0.0.1')

和您的客户端用于调试目的:

import requests

result = requests.post('http://127.0.0.1:5000/', json={"mytext":"lalala"})
print(f'POST result: {result.text}')

result = requests.get('http://127.0.0.1:5000/?mytext=lalala')
print(f'GET result: {result.text}')

result = requests.get('http://127.0.0.1:5000/Antonis')
print(f'GET result: {result.text}')

关于python - 如何修复 web 中返回 request.get_json 并获取 null 的问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57237815/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com