Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 烧瓶打印不起作用_Python_Json_Flask - Fatal编程技术网

Python 烧瓶打印不起作用

Python 烧瓶打印不起作用,python,json,flask,Python,Json,Flask,如果我向Flask服务器发送运行此程序的HTTP Post,我知道它会返回200响应: import requests import json dump= '{"on": false}' r = requests.post('http://127.0.0.1:5000', data=dump, headers={'Content-Type': 'application/json'}) 以及我的Flask服务器的代码: from flask import Fl

如果我向Flask服务器发送运行此程序的HTTP Post,我知道它会返回200响应:

import requests
import json
dump= '{"on": false}'
r = requests.post('http://127.0.0.1:5000', data=dump,
                  headers={'Content-Type': 'application/json'})
以及我的Flask服务器的代码:

from flask import Flask
from flask import request, jsonify
import requests

app = Flask(__name__)

@app.route('/', methods=['GET', 'POST'])
def signal():
    if request.method == 'POST':
        content = request.get_json()
        return jsonify(content)
        print(jsonify(content))
        r = requests.put("http://192.168.1.102/api/F5La7UpN6XueJZUts1QdyBBbIU8dEvaT1EZs1Ut0/lights/5/state/", jsonify(content))
    else:
         return 'Hello, world!'

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

我想将数据打印到控制台,然后使用HTTP PUT将其发送到网络上的网桥。这两个都不起作用,我也不知道为什么。

您需要在函数的最后返回

@app.route('/', methods=['GET', 'POST'])
def signal():
    if request.method == 'POST':
        content = request.get_json()
        print(content)
        r = requests.put("http://192.168.1.102/api/F5La7UpN6XueJZUts1QdyBBbIU8dEvaT1EZs1Ut0/lights/5/state/", content)
        return jsonify(content)
    else:
         return 'Hello, world!'

注意:您可能已经过度使用了jsonify函数,因为flask中的jsonify函数返回flask.Response对象,而不是您将发布或放入另一个服务的JSON字符串

return退出函数。返回后尝试执行的任何操作都永远无法到达。因此,当代码到达return jsonifycontent时,后面的代码并不重要,该代码永远不会执行。因此,如果我将响应发送回发送设备,我只想使用jsonify?发送回请求HTTP响应的客户端,是的。好的,这很公平。对不起,我也应该明白退货的事。我的最后一件事是,这是一种在删除撇号时保留“{on:false}”HTTP POST的方法,这意味着PUT不起作用。我不确定这意味着什么。。。我只是在解决你最初提出的问题。如果您还有其他问题,请单击按钮提问。