Flask Server Post不适用于Heroku

时间:2018-06-14 01:08:24

标签: python api heroku flask

我在本地测试了我的代码,它运行得很好。然而,把它推到heroku并没有那么顺利。首先,我有这个基本的Root API来检查我的heroku配置是否正常:

class Root(Resource):
    def get(self):
        return {"works": "fine"}
api.add_resource(Root, "/")

当我访问我的网站时,这确实让我得到了正确的对象。这是我想要的webapp的真正终点:

class Update(Resource):
    def get(self, todo_id):
        return {todo_id: todos[todo_id]}

    def post(self, todo_id):
        todos[todo_id] = request.form["data"]
        return {"name": "A", "uv": "4000", "pv": todos[todo_id], "amt": "2400"}


def add_data():
    global hist_data
    while True:
        _position = _status()
        hist_data += [{"name": "price", "uv": 4000, "pv": _position, "amt": 2400}]
        jsonized = json.dumps(hist_data)
        post("https://myflaskapi1.herokuapp.com/history", data={"data": jsonized}).json()
        sleep(600)

api.add_resource(Update, "/<string:todo_id>")

这就是我循环add_data()发布请求的方式:

if __name__ == "__main__":
    p = Process(target=add_data)
    p.start()
    port = int(os.environ.get("PORT", 5000))
    app.run(host="0.0.0.0", port=port, use_reloader=False)
    p.join()

现在,本地工作得很好,我能够发布请求然后转到localhost:5000 / history来获取对象。在Heroku上,我得到:{"message": "Internal Server Error"} 我也尝试向Postman发送一个帖子请求,这是我得到的:

{
    "message": "The browser (or proxy) sent a request that this server could not understand."
}

上下文:我正在收集数据,以便稍后由React Chart组件呈现。因此,我循环使用add_data()函数每600秒产生更多数据。

0 个答案:

没有答案