python - 如何结合 django 和 gevent 的基础知识?

标签 python django comet gevent

经过大量搜索和谷歌搜索,我要回到井边。 我有 Django 1.4 并且正在寻找一个体面的 working 示例来弄清楚让 Django 与 gevent 一起工作。 我喜欢 Django 框架,但我需要它来处理长轮询。 我已经有一个使用 gevent 的工作服务器,它可以处理长轮询请求以及通过 http 以大约 10 帧/秒的速度流式传输图像。我想使用 Django 中的所有好东西来为这部分提供一个框架。

那里有很多示例,但不幸的是,这些示例似乎都不是开箱即用的!有一个可行的例子来理解这两个东西是如何协同工作的,真的很有帮助。

这是我目前发现的问题和问题:

http://codysoyland.com/2011/feb/6/evented-django-part-one-socketio-and-gevent/ 问题: ImportError:无法导入设置'webchat.settings'(它在 sys.path 上吗?):没有名为 webchat.settings 的模块

https://github.com/codysoyland/django-socketio-example/blob/master/README.rst 问题:安装失败,获取 gevent 的权限问题 尝试从 git hub 手动获取它。该示例运行,但在浏览器连接时生成这些错误。

这些内容提供信息,但不提供基本答案。 Need help understanding Comet in Python (with Django) https://bitbucket.org/denis/gevent/src/tip/examples/webchat/chat/views.py http://blog.gevent.org/2009/10/10/simpler-long-polling-with-django-and-gevent/

我希望有人能解释一下(拜托,拜托……)是这样的: 我有一个使用 Django 1.4 创建的基本站点 - 此处的教程 https://docs.djangoproject.com/en/1.4/intro/tutorial01/非常好。 所以现在我需要了解要进行哪些更改才能使用 gevent 并能够处理异步事件。我相信这并不难——我只需要一个理解它的人来解释要做什么以及正在发生的事情(比如monkey_patch)。

谢谢。

最佳答案

以下是我使用 gevent + 猴子补丁运行 Django 的方法:

  1. 我已经修改了 manage.py 所以第一行(shebang 之后)是 from gevent import monkey; monkey.patch_all()

  2. 我添加了一个新的 run_production_server 脚本(见下文)。

最后,我已将前端网络服务器配置为将请求代理到端口 1234(run_production_server 正在监听的端口)。

from gevent import monkey; monkey.patch_all()
from gevent.wsgi import WSGIServer

from django.core.management import setup_environ    
import settings
setup_environ(settings)

from django.core.handlers.wsgi import WSGIHandler as DjangoWSGIApp
application = DjangoWSGIApp()
server = WSGIServer(("127.0.0.1", 1234), application)
print "Starting server on http://127.0.0.1:1234"
server.serve_forever()

有些人可能会提示这个服务器不够“网络规模”。我怀疑他们能否提供基准来证明这一点,但如果您担心您也可以为您的服务器使用 gunicornuwsgi。但这对我来说很好用。

关于python - 如何结合 django 和 gevent 的基础知识?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964571/

相关文章:

python - 嵌套 np.where

python - pandas groupby 申请真的很慢

python - 有没有办法在 Django 中按 View 中的单词截断?

c# - facebook 类似于 ASP.net 中的聊天应用程序

python - 这 8 行 python + pandas 需要大约 1 个月才能执行,能帮我加快速度吗?

python - 使用 Django REST API 访问 Odoo 数据

jquery - 使用 django 1.10.5 的 Ajax Post 请求错误

PHP:长轮询和 Comet 相关

node.js - 如何从 NodeJS 服务器端在客户端浏览器上调用 javascript 函数?

python - 如何更新我的 Django 版本?