【发布时间】:2026-01-04 21:25:03
【问题描述】:
问题总结
我正在尝试在 localhost 5000 (http://127.0.0.1:5000/) 上使用 mongodb 设置一个 python eve REST API 服务器。一开始,我的 mongodb 托管在 localhost 27017,API 连接运行良好。但我想将数据库更改为云服务器,所以我将我的数据库转储到 MongoDB Atlas 并尝试修改 MONGO_HOST 并在 settings.py 文件中添加用户凭据。但它没有用。这是我尝试修改的代码。
更改前
settings.py
MONGO_HOST = 'localhost'
MONGO_PORT = 27017
MONGO_DBNAME = 'mydb'
...
SERVER_NAME = '127.0.0.1:5000'
URL_PREFIX = 'api'
改动后
settings.py
MONGO_HOST = '<clustername>-mz123.gcp.mongodb.net'
MONGO_USERNAME = 'user'
MONGO_PASSWORD = 'user'
MONGO_DBNAME = 'mydb'
...
SERVER_NAME = '127.0.0.1:5000'
URL_PREFIX = 'api'
我还尝试按照official 的说明使用 pymongo 访问 mongoDB Atlas,它成功运行如下。所以我认为问题可能正是如何设置eve settings.py文件以正确的方式连接到MongoDB Atlas。
from pymongo import MongoClient
client = MongoClient("mongodb+srv://user:password@<clustername>-mz123.gcp.mongodb.net/test?retryWrites=true&w=majority")
db = client['db']
col = db['collection']
我的问题和想法
-
有没有我刚刚遗漏的设置参数?我不确定 MONGO_HOST 的名称是否错误,但我只是从 Atlas 网站上的说明中得到的。还是我需要将设置更改为 MONGO_URI 之类的形式?但我也尝试过,也失败了。哈哈
-
在 localhost 5000 服务时,eve REST API 是否仅服务于 localhost DB (27017)?
-
有什么建议吗?谢谢!
【问题讨论】:
标签: mongodb python-3.6 flask-restful eve mongodb-atlas