Django/Flask 实现:在后台通过 HTTP 或 Socket 持续监听连接。

5 投票
2 回答
1169 浏览
提问于 2025-04-16 11:47

我现在正在计划一个网络应用,它需要持续监听一个开放的连接,并将特定的信息写入数据库。

为了熟悉flask(我选择的框架)和python,我想尝试一下twitter流媒体API。

其实,核心问题是一样的。如何为这两种连接实现一个永久的“连接监听器”?

下面提到的方法是实现这个功能的最佳方式吗?

tweepy流媒体API与Django的集成

我有点不喜欢在机器上实现一个系统守护进程的想法。

编辑:当然,我想通过HTTP向用户提供服务。所有这些都应该是非阻塞的。

2 个回答

2

我推荐使用 Eventlet 来处理基于事件的操作,特别是与开放套接字相关的。

在Python中,还有其他选项可以处理Twitter的实时API,比如 twistedtornado

5

如果你想让系统不阻塞,那么Flask和Django这两个框架本身都不能满足你的需求。你可以看看Twisted,因为它是目前最成熟的用于非阻塞输入输出的Python项目:http://twistedmatrix.com/trac/

Twisted提供了一套很不错的API,适合用来搭建基于socket的服务器。如果你需要和一个“普通”的网页应用结合,Django可能是最好的选择,因为我觉得还没有人做过Twisted和Flask的结合(我可能错了,只是没见过)。这里有一个链接,讲解了如何在同一个环境中设置Django和Twisted:http://dreid.org/2009/03/twisted-django-it-wont-burn-down-your.html/

注意:不需要任何系统守护进程;)

撰写回答