问题标签 [flask-pymongo]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
247 浏览

mongodb - flask_pymongo:PyMongo vs MongoClient:[SSL:CERTIFICATE_VERIFY_FAILED]

我有一个巨大的烧瓶应用程序,我使用PyMongo来自flask_pymongoMongoDB 操作的类。我的问题是在开发环境中。

MONGO_URI我有一个config.py这样的:

我的应用程序中的用法如下所示:

这一直很好,直到几天前我从头开始重新安装 Windows 和 Python。现在相同的代码会引发以下错误:

但是使用MongoClient而不是PyMongo工作就好了,像这样:

问题

PyMongo当我重新安装所有内容时发生了什么变化?我不想MongoClient仅仅因为有 100 多个端点而使用它,现在转移是一场噩梦,而且我更喜欢PyMongo因为我不必db_name在每个查询中指定 ,它从MONGO_URI.

我错过了什么,我该如何使用它PyMongo?有没有办法设置ssl_cert_reqswhile using PyMongo

0 投票
1 回答
29 浏览

python - 使用 pymongo 的结果

我有一个使用 flask 和 flask-pymongo 的 api 我正在尝试处理登录功能并使用 passlib 尝试检查密码哈希是否匹配

调用端点时出现 500 服务器错误

我的代码如下:

错误在这里

因为我是 Python 新手,所以我想知道我是否在这里正确使用了 return

0 投票
0 回答
33 浏览

mongodb - 在 Pymongo 中将 expireAfterSeconds 时间设置为 10 分钟

在上面的代码中,expireAfterSeconds只有指定为3*60. 如果我改变它的值,我会得到错误。我需要将过期时间设置为10分钟

错误:引发 OperationFailure(errmsg, code, response, max_wire_version) pymongo.errors.OperationFailure: Index with name: createdAt_1 already exists with different options, full error: {'operationTime': Timestamp(1632732176, 1), 'ok': 0.0 , 'errmsg': 'Index with name: createdAt_1 already exists with different options', 'code': 85, 'codeName': 'IndexOptionsConflict', '$clusterTime': {'clusterTime': Timestamp(1632732176, 1), '签名': {'hash': b"\xb4\xaf\xaa\xb7\x1e\xd4:\xa4\xf7\x81\xa8\xa9\xef\xa1}\xa7\x8e('i", 'keyId' : 6961454804933541890}}}

0 投票
0 回答
75 浏览

python - Flask 和 Flask-PyMongo “用户警告:MongoClient 在分叉前打开。”

我正在使用 MongoDB 数据库开发 Flask 应用程序。

我将该数据库用于我的核心应用程序数据以及 Flask-Dance 令牌存储 ( https://flask-dance.readthedocs.io/en/latest/storages.html )。自定义存储后端的代码在token_storages.py下面。

Flask 开发服务器中的一切都运行良好,但是当我尝试通过 uWSGI 运行我的 prod 服务器时,我收到此错误:

UserWarning: MongoClient opened before f
ork. Create MongoClient only after forking. See PyMongo's documentation for details: https://pymongo.readthedocs.io/en/stable/faq.html#is-
pymongo-fork-safeUserWarning: MongoClient opened before f
ork. Create MongoClient only after forking. See PyMongo's documentation for details: https://pymongo.readthedocs.io/en/stable/faq.html#is-
pymongo-fork-safe

我看到的所有研究都是指connect=False实例化 PyMongo 时的设置,但这没有任何效果。根据文档,此设置应为默认设置(https://flask-pymongo.readthedocs.io/en/latest/)。

该错误实际上并没有告诉我哪里出了问题——任何关于如何找到 PyMongo 认为错误的指导将不胜感激。

我能找到的所有数据库调用都是在 Flask 路由中进行的,我相信这应该可以正常工作(请参见storyboard_routes.py下面的示例。

我相信下面的代码应该足以提供有关应用程序构建的详细信息,但如果还应包含其他内容,请告诉我。

最后,我确实发现lazy-apps = true我的 uWSGI 设置中的设置确实解决了这个问题(在 中wsgi.ini),但如果可能的话,我宁愿解决根本问题。

提前致谢!

这是建议的,但至少在今天它是不准确的,因为 connect=true 不是当前的默认值。尽管如此,我还是尝试了它,但没有成功。 MongoClient 在 fork 之前打开。仅创建 MongoClient Flask

相关版本

Python 3.8.10 pymongo 3.12.0 Flask-PyMongo 2.3.0 Flask 2.0.1 Flask-Dance 5.0.0 </p>

我的应用程序/初始化.py

我的应用程序/db.py

my_app/util/token_storages.py

my_pp/routes/storyboard_routes.py

wsgi.ini

0 投票
1 回答
24 浏览

pymongo - PyMongo:如何获取与任何可能的过滤器匹配的所有对象?

我有一个“用户名”列表作为一个数组,以及一个带有“作者”变量的 mongodb 集合中的帖子列表。我想从集合中获取所有对象,其作者是数组中的用户名之一。

因此,如果:

集合:{“作者”:“蒂姆”},{“作者”:“鲍勃”},{“作者”:“乔恩”}

以下= [“蒂姆”,“乔恩”]

然后我只想获取 tim 和 jon 的帖子

0 投票
1 回答
24 浏览

python - pymongo - 更新数据并访问找到的值

我正在尝试更新存储在 mongodb 集合中的数组的值

这个想法是我想访问值并使用我在 mongodb 文档中找到的以下代码编辑一个值

这应该可以,但我不明白错误是什么或pymongo的正确语法是什么。添加“$”时产生错误;

0 投票
0 回答
16 浏览

mongodb - Flask-PyMongo DBRef 没有按预期工作

如何定义 ref 以及如何使用 ref 填充相关字段来查询集合。

我在产品集合中插入产品文档时定义了一个 ref,但是在查询时我得到的信息是插入的,而没有填充类别字段。我期待 mongo 用类别集合中的类别文档填充类别字段。以下是一些代码片段:

文件插入

获得的结果

0 投票
0 回答
27 浏览

python - 检索图像 - Pymongo - Python - Flask

我正在尝试制作一个简单的应用程序,您可以上传图像并从系统中检索它。我上传了图片并且它工作正常但是当我检索图片时它返回这个错误TypeError TypeError: argument of type 'NoneType' is not iterable。我已经检查过它是否正确保存在数据库中,据我所知它 100% 正确

这是我的上传路线:

这是我返回上述错误的检索路线:

有谁知道如何解决它?拜托了

0 投票
1 回答
45 浏览

mongodb - 如何在 mongodb 聚合或管道查询中设置对象数组中的特定字段以及文档中其他字段的条件更新?

如何使用文档 id=1 和 taskID=1 更新任务数组的字段“taskEnd”,并且在更新时,如果来自前端的用于更新“taskEnd”的数据超过“end”字段,同时更新“end”字段相同的值。

提前致谢,

我知道如何使用两个单独的查询更新对象数组的特定字段和字段的条件更新。

可以通过单个查询完成吗?