我有一个 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
我有以下输出:
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
}
我正在努力寻找正确的路径,因为我确定有些路径是不正确的,您觉得如何?
编辑:解决了,我运行了错误的服务器。
答案 0 :(得分:0)
你尝试了吗:
@app.route("/USERS/db_populate",methods=['POST']) ?
答案 1 :(得分:0)
您应该始终只使用 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'])
会更好。可以使用大写字母,但当人们尝试使用小写字母引用您的端点时,可能会导致混淆和错误。