Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.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 Flask服务器Post在Heroku上不工作_Python_Api_Heroku_Flask - Fatal编程技术网

Python Flask服务器Post在Heroku上不工作

Python Flask服务器Post在Heroku上不工作,python,api,heroku,flask,Python,Api,Heroku,Flask,我在本地测试了我的代码,效果很好。然而,把它推给heroku并不顺利。首先,我使用这个基本根API检查我的heroku配置是否正常: class Root(Resource): def get(self): return {"works": "fine"} api.add_resource(Root, "/") 事实上,当我访问我的网站时,这让我找到了正确的对象。以下是我想要的Web应用程序的真实端点: class Update(Resource): def g

我在本地测试了我的代码,效果很好。然而,把它推给heroku并不顺利。首先,我使用这个基本根API检查我的heroku配置是否正常:

class Root(Resource):
    def get(self):
        return {"works": "fine"}
api.add_resource(Root, "/")
事实上,当我访问我的网站时,这让我找到了正确的对象。以下是我想要的Web应用程序的真实端点:

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_data()post请求的方式:

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": "The browser (or proxy) sent a request that this server could not understand."
}

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

您的程序文件是什么?如果不知道它的内容,就无法解决此问题。@Fian现在是
web:gunicorn app:app
,但我已将其设置为
web:gunicorn-b0.0.0:$PORT app:app
,但它不起作用。1。有关
内部服务器错误
的信息,请参阅heroku日志以查找原因,stackoverflow不能也不会为您这样做。2.对于
,浏览器(或代理)发送了一个请求…
这表明您以错误的方式发出请求,使用谷歌很容易解决。您有许多不相关的错误,我认为最好的方法是创建尽可能简单但可以使用Heroku flask应用程序(而不是本地)的处理程序,比如1个返回200 OK的处理程序,然后添加特性。使用这种方法,错误将被隔离,并且对您来说是可以补救的。