问题标签 [tornado]

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 投票
1 回答
1348 浏览

caching - 在 Python 中缓存异步查询的优雅方式?

我正在使用 Tornado Web 服务器,并希望利用静态缓存来获取异步查询结果。Python 可以很容易地使用某种类型的缓存来包装函数,例如使用装饰器:

但是,使用延续传递很快就会变得复杂:

我能想到的最优雅的解决方案需要对调用签名做出假设,这并不总是可行的。谁能想到更好的方法?

0 投票
2 回答
2210 浏览

python - 使用 Python Tornado 的 Ajax 请求获得 405

我有一些 javascript 通过 javascript(无库)对在不同端口上运行的本地站点进行“POST”调用。如果该站点使用 mod_python 运行应用程序,它就可以工作。如果它正在使用 Tornado 运行应用程序 - 它会失败并出现 405 错误。我已经确定在处理程序上实现了 post() 和 options() 方法,但它仍然出错。由于这适用于 mod_python,因此这必须是可能的。任何人都知道如何让 Tornado 接受来自同一 IP 但不同端口的请求?(我只是在本地进行测试,根本不关心安全问题)。

0 投票
1 回答
2106 浏览

django - 如何在 Django 项目之外使用 manage.py syncdb,例如在 Tornado 中?

我正在浏览http://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/,我认为如果我们需要它,使用 Django 的一部分是有趣和有用的龙卷风。

基于http://lincolnloop.com/blog/2009/sep/15/using-django-inside-tornado-web-server/中的设置我们如何使用manage.py syncdb

到目前为止,这是我尝试过的:我尝试将 manage.py 转移到与 tornado 项目相同的文件夹,然后运行,manage.py syncdb但它返回说未找到 settings.py。

比我尝试将 setting.py 移动到同一个文件夹并再次运行 manage.py 。它告诉我没有找到固定装置。这一次,我不知道如何配置 settings.py,因为这不是 Django 项目。

有什么建议或想法吗?

=================更新======================

大家好,从上面 Agos 提供的使用建议继续,我尝试运行 python manage.py syncdb --settings=dj_tornado 并返回

所以我所做的是运行django-admin.py syncdb --settings=dj_tornado并返回"django.core.exceptions.ImproperlyConfigured: You haven't set the database ENGINE setting yet."

但奇怪的是数据库引擎已经设置好了。我将如何解决这个问题?顺便说一句,我正在使用 django 1.2.3 和 Tornado 0.2。

=================再次更新=====================

大家好,我已经应用了 Agos 提供的建议,在与 manage.py 相同的文件夹中包含一个 settings.py 文件,然后运行了命令django-admin.py syncdb --settings=dj_tornado。我仍然收到错误:

但我已经将基于数据库的引擎配置如下:在 dj_tornado.py 中:

我有点不知所措。如何在 Django 项目之外使用 syncdb?

最好的。

0 投票
1 回答
645 浏览

django - Django关于龙卷风生产环境的建议

我一直在寻找结合 Django 和龙卷风的方法,我遇到了https://github.com/koblas/django-on-tornado

有没有人试过这个设置?与仅在 Tornado 中编写应用程序相比,使用上述设置是否有任何区别(在编码和生产环境问题方面)?

如果我使用上述设置,我需要注意哪些事项?

最好的。

0 投票
2 回答
6081 浏览

python - 使用 Tornado 和 Pika 进行异步队列监控

我有一个 AMQP 服务器 ( RabbitMQ ),我想在Tornado Web 服务器中发布和读取它。为此,我想我会使用异步 amqp python 库;特别是Pika(它的一种变体,据说支持 Tornado)。

我编写的代码似乎成功地从队列中读取,除了在请求结束时,我得到一个异常(浏览器返回正常):

我不完全确定我是否正确使用了这个库,所以我可能做错了什么。我的代码的基本流程是:

  1. 请求进来
  2. 使用 TornadoConnection 创建到 RabbitMQ 的连接;指定回调
  3. 在连接回调中,创建一个通道,声明/绑定我的队列,并调用 basic_consume;指定回调
  4. 在消费回调中,关闭通道并调用 Tornado 的完成函数。
  5. 见异常。

我的问题有几个:

  1. 这个流程是否正确?我不确定连接回调的目的是什么,除非我不使用它就不起作用。
  2. 我应该为每个 Web 请求创建一个 AMQP 连接吗?RabbitMQ 的文档建议不,我不应该,而是应该坚持只创建通道。但是我将在哪里创建连接,如果它短暂中断,我该如何尝试重新连接?
  3. 如果我为每个 Web 请求创建一个 AMQP 连接,我应该在哪里关闭它?在我的回调中调用 amqp.close() 似乎把事情搞砸了。

稍后我将尝试编写一些示例代码,但我上面描述的步骤相当完整地展示了事物的消耗方面。我也遇到了发布方面的问题,但是队列的消耗更加紧迫。

0 投票
1 回答
250 浏览

python - 将 Tornado python web 框架中的代码转换为独立工作

我需要使用依赖于 Tornado Python Web 框架的库,但我不能让它依赖于 Tornado。

从这个框架转换代码时,有人有什么建议吗?

之前有没有尝试过类似的事情(并公布了结果)?

0 投票
1 回答
737 浏览

facebook - 带有 Facebook 注册插件的 Tornado

Facebook几周前在http://developers.facebook.com/docs/user_registration发布了一个注册插件 。

我想知道我们如何用 Tornado 实现这一点?

我一直收到一个错误:403 POST /auth/fbform (127.0.0.1): '_xsrf' argument missing from POST

redirect_url 为http://localhost:8888/auth/fbform ,代码如下:

我不明白错误消息在说哪个 POST,所以我尝试使用 get 和 post 函数中的 _parse_signed_request 。

请赐教。顺便说一句,我目前正在本地计算机上工作。

最好的祝福。

0 投票
1 回答
758 浏览

python - 龙卷风和阻塞代码

我正在尝试从 CherryPy 转移到我正在开发的 Web 服务上,而我正在考虑的一个替代方案是 Tornado。现在,我的大部分请求都在后端看起来像:

  • 获取 POST 数据

  • 看看我是否在缓存中(数据库访问)

  • 如果不向其他一些 Web 服务发出多个 HTTP 请求,这可能需要几秒钟,具体取决于请求的数量

我一直听说不应该阻塞龙卷风主循环;我想知道如果上面所有的代码都是在 a 的post()方法中执行的RequestHandler,这是否意味着我正在阻塞代码?如果是这样,在上述要求下使用龙卷风的适当方法是什么。

0 投票
2 回答
1265 浏览

python - Python。将标准错误重定向到日志文件

我有 Django 网站在龙卷风和 nginx 上工作。

我拿了这个龙卷风启动器脚本(tornading.py)

然后我使用 python openid 向 sys.stderr 输出一些信息。

结果我得到了 IOError。

如何使用日志记录包重定向它?

我想过

或者

但是解决它的最佳方法是什么?

0 投票
1 回答
6032 浏览

python - 使用多个参数在 Tornado HttpGet 中传递一个参数

我想在 URL 中传递一个参数(以更新我的 URL 包含的许多参数之一),如下所示:

Python中的服务器端:

服务器告诉我,我不能这样做,因为缺少参数“gender”。我能怎么做?

谢谢