烧瓶打印不起作用

时间:2017-03-04 18:42:30

标签: 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 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将其发送到网络上的网桥。这些都不起作用,我不确定原因。

1 个答案:

答案 0 :(得分:-1)

你需要在函数的最后返回

@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()个对象,而不是您将POST或PUT到另一个服务的JSON字符串。