mongodb - 如何为 MongoDB Atlas 上的数据库设置 Python EVE REST API 服务设置
问题描述
问题总结
我正在尝试在 localhost 5000 ( http://127.0.0.1:5000/ ) 上设置一个带有 mongodb 的 python eve REST API 服务器。一开始,我的 mongodb 托管在 localhost 27017,API 连接运行良好。但是我想将数据库更改为云服务器,所以我将我的数据库转储到 MongoDB Atlas 并尝试修改 MONGO_HOST 并在settings.py文件中添加用户凭据。但它没有用。这是我试图修改的代码。
变更前
设置.py
MONGO_HOST = 'localhost'
MONGO_PORT = 27017
MONGO_DBNAME = 'mydb'
...
SERVER_NAME = '127.0.0.1:5000'
URL_PREFIX = 'api'
改变后
设置.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'
我也尝试按照官方的指示使用 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)?
有什么建议么?谢谢!
解决方案
在 your中,使用您在示例中使用的参数settings.py
定义您。请参阅文档中的此处(https://docs.python-eve.org/en/stable/config.html#global-configuration)MONGO_URI
MongoClient
MONGO_URI
推荐阅读
- java - 不能在java中用equals()比较两个字符串
- javascript - 加载时函数未显示所有预期数据
- cors - 为什么只有一个 API 端点上的 cors 策略错误
- angular - 使用角度从后端检索所有数据
- python - 如何在 Pandas 中制作一个直方图网格,其中包含一个公共图
- java - DirectoryStream 比 Files.listFiles() 快吗?
- java - 使用多个线程搜索列表并查找元素(不使用并行流)
- java - 为不同的消费者提供不同的 bean
- kubernetes - Kubernetes - calico IP_AUTODETECTION_METHOD 无法设置
- python - 从国际象棋导入国际象棋引擎:国际象棋引擎错误