带有 AWS DocumentDB 的烧瓶

Flask with AWS DocumentDB

我正在尝试使用 flask 和 flask_pymongo 连接到我的 AWS DocumentDB。我的 AWS 集群启用了 TLS。我可以使用 python shell 和 pymongo 连接到数据库,但是当我在烧瓶中执行以下操作时,我无法连接它。下面的 URI 在我的应用程序中根据我的用户名、密码和集群进行了自定义。并且 pem 文件与 app.py 在同一目录中。有什么建议吗?

from flask import Flask, jsonify
from flask_restful import Resource, Api
from flask_pymongo import PyMongo

app = Flask(__name__)

app.config['MONGO_DBNAME'] = 'mydb'
app.config['MONGO_URI'] = 'mongodb://<dbusername>:<dbpassword>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred'

mongo = PyMongo(app)
api = Api(app)

如果您使用的是最新版本的 Flask-PyMongo(2.0 或更高版本),则 MONGO_DBNAME 将无效。对于 2.0,您必须将数据库名称放在 URI 中(因此在本例中为 'mongodb://<dbusername>:<dbpassword>@mycluster.node.us-east-1.docdb.amazonaws.com:27017/mydb?ssl=true&ssl_ca_certs=rds-combined-ca-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred'