簡體   English   中英

Flask 404 在 MongoDB 上的 POST 請求后未找到

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM