我正在嘗試使用 Python 中的 requests 庫從我使用 Flask 制作的 REST API 訪問 mySQL 資料庫,該 API 托管在 Heroku 上。我在本地運行這個腳本。我嘗試使用 postgresql 插件,但它不起作用。然后我嘗試使用不同的 mySQL 資料庫主機(freesqldatabase.com),因為我認為這是 AWS 的問題。它仍然沒有作業。我確保在部署后通過運行“heroku run python,然后運行 ??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
其他所有內容都在這個 repo 上:https ://github.com/Chubbyman2/waifu-list-api
Heroku 會簡單地阻止 HTTP 請求嗎?
uj5u.com熱心網友回復:
根據 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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/495423.html
標籤:mysql heroku sqlalchemy 蟒蛇请求 heroku-postgres
