问题标签 [tornado-motor]
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.
python - Tornado 使用 Motor 对 MongoDB 进行身份验证
我制作了一个 tornado 应用程序,它应该对在另一台机器上运行的 mongodb 实例运行一些查询。为此,我设置了带有身份验证和用户的 mongodb。我检查了一切正常,并且我可以使用 Robo 3T 应用程序和一个使用 pymongo 的小型同步脚本对 tornado 进行身份验证。
这就是我初始化我的龙卷风应用程序的方式:
一切似乎都在运行,直到我的一个实际对数据库执行查询的处理程序被命中。处理程序中的代码如下所示:
此代码在尝试使用身份验证之前运行良好,但现在它引发异常并停止工作:
我能够找到一些关于如何登录和验证 MongoDB 的简单示例,据我所知,这正是我的做法(https://github.com/mongodb/motor/blob/master /doc/examples/authentication.rst)。
任何人都可以了解正在发生的事情以及如何从使用 Motor 的实际工作龙卷风应用程序正确地向 MongoDB 进行身份验证?
PS 我正在使用 Python 3.6、tornado 4.5.2 和电机 1.1。
PPS 与此同时,我发现使用它作为 uri 可以使其正常工作:
在上面,我用“admin”数据库替换了 {mongodb}。在客户端连接并在管理数据库上进行身份验证后,我可以继续 get_database(mongodb) 并且它将正常工作。如果有人想更清楚地说明发生了什么,我会接受答案。
python - Tornado,带 mongomock 的电机进行测试
我正在为基于龙卷风的 Web 应用程序编写一个测试模块。该应用程序使用电机作为 mongodb 连接器,我希望我的测试在临时数据库上运行。我在连接器客户端的delegate_class上使用了一种模拟技术,如下所示:
当我启动我的测试时,我收到了这个错误:
目前我无法让它工作,我想知道我想要做的事情是否可以使用当前版本的电机(1.2.1),mongomock(3.8.0)和龙卷风(4.5)。 3),或者我错过了什么?
感谢您的所有建议。
mongodb - 什么是 mongoengine.GeoPointField 在 motorengine 中执行近距离查询的等价物?
我有以下模型:
class DbObjectWithCoordinates(Document):
coordinates = GeoPointField() # this used to work with mongengine
我使用mongoengine.GeoPointField
来执行查询,例如查找给定坐标附近的所有对象:
但是,该GeoPointField
字段在 motorengine 中不可用。是否可以在 motorengine 中定义对象并使用这样的查询?如果没有,这种用例是否有解决方法?
python - 无法使用标准方法将 MotorCursor 对象转换为异步函数中的列表
我一直在尝试让异步函数从 Python 中的电机数据库中获取数据,并获取与搜索对应的数据列表。这是获取数据和打印数据的函数:
我有一个 PyQt 插槽,我想用它在按下按钮时调用 find_by_run_name 函数。这是该插槽的代码:
当我按下与此插槽对应的按钮时,我在终端中看到以下内容:
这向我表明 do_find_by_run_name 函数运行正常,但运行 print_arr 函数存在问题。
为了解决此问题,do_find_run_name 已更改为:
我将我的 PyQt 插槽更改为:
进行此更改后,我看不到任何打印内容。似乎 do_find_run_name couroutine 从未执行过。
python - 对象 MotorLatentCommandCursor 不能在“等待”表达式中使用
在 Tornado 中使用电机连接 mongodb
我创建了一个电机连接
当我开始时,我收到了这条消息:“对象 MotorLatentCommandCursor 不能用于 'await' 表达式”
idk 为什么~好像没什么问题
python-3.x - Tornado + motor,根据电机文档示例,甚至出现错误
我在tornado项目中使用motor库查询mongodb。按照官方文档的例子,报错了。谁能帮我写代码,非常感谢。
当我运行代码时,发生了异常:
python 版本:3.7
龙卷风版本:6.0.2
电机:2.0.0
tornado - 如何在 Tornado 中传递环境变量(数据库 URL)?
我有弹性 URL 作为环境变量传递给 post 方法,我已经从 tornado_sqlalchemy 声明了 make_session_factory,并传递给 requesthandler,我应该如何在 self 中接收它,下面是我的代码
现在我已经将我的 mod 函数中的 URL 编码为 localhost, 9200,
为了将它作为环境变量传递,我创建了工厂并将工厂作为 session_factory 在我的应用程序中传递,
我必须在我的 requesthandler post 方法中接收它,以便我可以传递给我的 predict 方法,该方法在 tern 调用我的 mod 函数,我可以知道如何接收它。我尝试使用初始化但无法正常工作。
还找到了使用带有龙卷风的电机的其他选项
在这里,我也必须在我的 post 方法中收到
python - PyMongo 对列表中的项目进行全文搜索
我希望使用 PyMongo 对嵌入在列表中的某些项目进行文本搜索。我的数据库结构如下:
{_id:"148319665188372481" }, "tags": ['#123456', '#789012'}
我想专门在我的数据库中搜索短语“123456”,但因为这些项目嵌入在一个列表中......我不太确定该怎么做。
这是我当前的代码:
python - 如何运行 Tornado 的 IOLoop 的多个实例?
我有用 Tornado 编写的基本 Web 服务器。现在,我想添加一些需要数据库连接的功能。我选择了带有 Motor 库的 MongoDB。在遵循官方教程之后,我的相关部分main.py
看起来像:
按照教程,它指出我现在可以do_find_one
使用 IOLoop.current().run_sync(do_find_one)
. 但是,如果我这样做:
它不会改变任何东西,也看不到足够的结果,但是如果切换行,例如:
我收到以下错误:
我应该do_find_one()
在 main 中定义函数,然后await
在get
方法中定义它LoginHandler
吗?
我怎样才能让服务器工作,同时对数据库进行操作?
这些IOLoop
s可以在同一个线程上运行,还是我需要创建多个线程(一个IOLoop
或一个)?