实时web应用程序的Django替代方案

2024-05-17 03:43:31 发布

您现在位置:Python中文网/ 问答频道 /正文

去年我一直在用Django开发一个web服务器应用程序。堆栈是Django+Apache+MySql。这堆东西非常适合我们的需要。最近出现了对一些实时功能的需求,以及更改/重写服务器应用程序中许多内容的机会。令我惊讶的是,Django不是这里最好的选择。

我读了很多书(push,WebSockets,gunicorn。。。很多东西。。http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但我还没有决定是否要和Django一起使用,或者是否应该使用一个更适合这项工作的新软件栈。和Django一起去似乎有点不自然。有经验的开发人员能给我指出正确的方向吗?

所以,最基本的问题是:对于构建一个实时web应用程序,我有哪些替代当前软件堆栈的方法?

谢谢

附言:不是以英语为母语的人。:)

编辑:备选方案需要允许安全连接。

编辑2:我们开发的web应用程序是游戏。


Tags: django功能web应用程序编辑内容软件websockets
3条回答

研究http://www.tornadoweb.org/+http://www.mongodb.org/+https://github.com/bitly/asyncmongo+http://socket.io/ 我认为用它来创建实时应用程序是个好主意。

对于实时web应用程序,我建议您使用websockets,它们可以是安全的,并且响应时间非常快,因为当建立连接时,不再有通信开销。如果您精通python,那么可以使用pythontwisted创建服务器,使用python和/或javascript创建客户端。P、 S.here是twisted非常好的教程。

你需要权衡你的决定和你的目标。

你想要一个产品

然后在您最熟悉的语言框架中编写代码,只有当您有一个产品并且它有限制时才可以考虑切换工具。

你想学点新东西

尝试一下新的语言,框架——但是生产一个产品可能需要更长的时间,你可能会发现新的工具并不比旧的好。

一半和一半

尝试启动两个项目,在每个项目中构建相同的东西,只需使用另一个工具。这将需要更长的时间,但是您应该能够很快地看到您喜欢/最适合您的任务的工具。

替代品

我不太清楚你说的django是什么意思“不自然”。Django可以进行服务器/客户机通信—只需使用一些AJAX与Django服务器进行对话,然后调用另一个pythonic库来处理请求。Python替代django的方法包括美妙的flaskweb.py,不过除非您也对它们进行编程,否则它们都不会进行客户机/服务器通信(比如django)。如果你不喜欢python,你可以试试ruby on rails。对于客户端,您需要了解一些关于JavaScript的知识,所以去学习一下(coffescriptjQuery可以减轻JS的痛苦,但一定要先学习JavaScript)。

当然,你可以咬紧牙关,使用node.js作为服务器基础,显然它非常好(我还没有尝试过),而且是用JS编写的。

编辑: 根据你的评论,仔细看看

还要注意这个问题是一个潜在的duplicate

相关问题 更多 >