Heroku 会阻止 HTTP 请求吗?

问题描述 投票:0回答:1

我正在尝试使用Python中的请求库从我使用Flask创建的REST API(托管在Heroku上)访问mySQL数据库。我在本地运行这个脚本。我尝试使用 postgresql 插件,但没有成功。然后我尝试使用不同的 mySQL 数据库主机 (freesqldatabase.com),因为我认为这是 AWS 的问题。还是没用。我确保在部署后通过运行“heroku run python, then db.create_all()”来创建数据库。我两次都遇到以下错误:

2022-06-19T02:31:43.193386+00:00 heroku[router]: at=info method=POST path="/waifulist" host=waifu-list-api.herokuapp.com request_id=89bb900f-1eb8-4cd1-a21e-000c2556421c fwd="99.229.226.167" dyno=web.1 connect=0ms service=1ms status=404 bytes=393 protocol=https
2022-06-19T02:31:43.193281+00:00 app[web.1]: 10.1.53.188 - - [19/Jun/2022:02:31:43 +0000] "POST /waifulist HTTP/1.1" 404 232 "-" "python-requests/2.28.0"

以下是我创建 API 端点的方法:

if __name__ == "__main__":
    # Create database
    db.create_all()

    # Add the Resource class as an API accessible through the given endpoint (i.e. "/waifulist")
    api.add_resource(WaifuList, "/waifulist")

    # Run app
    app.run(debug=True)

我为 HTTP 请求运行的确切脚本是:

import requests

# BASE = "http://127.0.0.1:5000/"
BASE = "https://waifu-list-api.herokuapp.com/"
PASSWORD = "sievers" 

# Add first waifu entry
test1 = requests.post(BASE + "waifulist", {"id": 1, "name": "Makise Kurisu", "anime": "Steins;Gate", "rank": 1, "password": PASSWORD})
print(test1.json()) # Returns 404

其他所有内容都在此存储库中:https://github.com/Chubbyman2/waifu-list-api

Heroku 会简单地阻止 HTTP 请求吗?

mysql heroku python-requests heroku-postgres
1个回答
0
投票

根据 topsail 的回复,显然当我实际部署我的应用程序/API 时并未创建端点。所以我只是将这两行移出,如下所示:

# Create database
db.create_all()

# Add the Resource class as an API accessible through the given endpoint (i.e. "/waifulist")
api.add_resource(WaifuList, "/waifulist")

if __name__ == "__main__":
    # Run app
    app.run(debug=True)
© www.soinside.com 2019 - 2024. All rights reserved.