【问题标题】:Error When Running Author.save() in MongoAlchemy在 MongoAlchemy 中运行 Author.save() 时出错
【发布时间】: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


【解决方案1】:

TLDR: 迁移到 MongoEngine。它是无痛的

来这里寻找答案。在网上找不到任何东西。在 GitHub MongoAlchemy 上说,它不再被维护。如果您正在寻找像我这样的答案,我不得不迁移到MongoEngine

【讨论】:

  • 对不起,这是很久以前的事了,我不知道是否有解决方案或它是什么。
猜你喜欢
  • 1970-01-01
  • 2020-06-02
  • 2018-08-16
  • 2015-11-08
  • 2018-07-21
  • 1970-01-01
  • 2012-04-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多