[英]Flask 404 Not found after POST request on MongoDB
我有一個 MongoDB 社區在我的 MacOS 上運行。 我想從它連接並發送數據到 Flask 服務器(我不知道 Flask 服務器是否是正確的名稱,對此我很抱歉),所以我可以獲取並向其添加數據。
數據庫名稱為:“USERS”,而其集合為“user”。 (這是我第一次這樣做)。
這是我的代碼:
from flask import Flask, make_response
from flask_mongoengine import MongoEngine
app=Flask(__name__)
database_name="USERS"
DB_URI ="mongodb://localhost:27017/?readPreference=primary&appname=MongoDB%20Compass&ssl=false"
app.config["MONGODB_HOST"]=DB_URI
db=MongoEngine()
db.init_app(app)
class User(db.Document):
user_id= db.IntField()
user_name=db.StringField()
user_bio=db.StringField()
def to_json(self):
#convert this document to JSON
return {
"user_id" : self.user_id,
"user_name" : self.user_name,
"user_bio" : self.user_bio
}
@app.route("http://127.0.0.1:5000/USERS/db_populate",methods=['POST'])
def db_populate():
user1=User(user_id=1,user_name="Marco", user_bio="Hi!")
user2=User(user_id=2,user_name="Francesca", user_bio="What a weird program!")
user1.save()
user2.save()
return make_response("",201)
if __name__ == '__main__' :
app.run(debug=True)
我確定 DB_URI 是正確的。 普通用戶必須有:id、name 和 bio。
運行此命令后: http POST http://127.0.0.1:5000/USERS/db_populate
我有以下 Z78E6221F6393D1356681DB398F14CED6
mac.fede@Ahoga ~ % http POST http://127.0.0.1:5000/USERS/db_populate
HTTP/1.0 404 NOT FOUND
Content-Length: 86
Content-Type: application/json
Date: Sat, 16 Jan 2021 16:40:12 GMT
Server: Werkzeug/1.0.1 Python/3.9.1
{
"message": "Not foundhttp://127.0.0.1:5000/USERS/db_populate",
"status": 404
}
我正在嘗試找到正確的路徑,因為我確定有些路徑不正確,您怎么看?
編輯:解決了,我運行了錯誤的服務器。
您是否嘗試:
@app.route("/USERS/db_populate",methods=['POST']) ?
您應該始終只使用 app.route() 的路徑。
從而改變
@app.route("http://127.0.0.1:5000/USERS/db_populate",methods=['POST'])
至
@app.route("/USERS/db_populate",methods=['POST'])
還要遵循路徑名的一般命名約定,只應使用小寫字母,所以
@app.route("/users/db_populate",methods=['POST'])
會更好。 使用大寫字母是可能的,但是當人們嘗試使用小寫字母引用你的端點時,它可能會導致混淆和錯誤。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.