【发布时间】:2019-07-08 06:02:49
【问题描述】:
现在看来我可以连接到 MongoDB 集群,但是当我尝试保存时,我收到以下错误:
TypeError: init() 得到了一个意外的关键字参数“安全”
我安装了 Flask-MongoAlchemy 0.7.1,因为 0.7.2 根本无法连接。
我正在关注文档页面上的简单示例。在 models.py 我有以下内容:
class Author(db.Document):
name = db.StringField()
我运行以下
from myapp import db
from myapp.models import Author
author = Author(name="James")
author.save()
然后我得到错误。
我看过一篇关于此的帖子,并尝试将 required=True 添加到我声明名称的位置。我可以确认 pymongo 版本是 3.8.0。
我发现 pymongo 需要 3.8.0 才能使用“mongodb+srv”的 URI,但它需要 2.8.0 才能传递安全参数。问题是我的代码在 python3 中,Atlas 告诉我连接字符串必须有“mongodb+srv”,所以这与 pymongo 的版本冲突。我不确定是否可以使用 Flask-MongoAlchemy 来完成这项工作。
【问题讨论】:
-
你能添加你得到的错误吗?
-
您好 Pablo,错误是“TypeError: init() got an unexpected keyword argument 'safe'”在尝试保存 Author 的实例时。我检查了文档,看起来 pymongo 的版本不再采用安全参数,但 Flask-MongoAlchemy 的版本仍在传递该参数。
标签: python mongodb-atlas flask-mongoengine mongoalchemy