Django替代实时Web应用程序

时间:2013-01-30 09:17:41

标签: python django web-applications real-time

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

我一直在阅读很多内容(推送,websockets,gunicorn ......很多东西.. http://curella.org/blog/django-push-using-server-sent-events-and-websocket/)但是我还没有管理,决定我是否选择Django或者我是否应该用一堆新的软件,更适合这项工作。与Django一起走似乎有点不自然。任何有经验的开发人员都能指出我正确的方向吗?

所以,基本的问题是:我有什么替代当前的软件堆栈来构建实时Web应用程序?

由于

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

编辑:替代方案需要允许安全连接。

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

3 个答案:

答案 0 :(得分:2)

您需要权衡您的决定与目标。

您想要一个产品

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

你想学习新的东西

试用新的语言框架 - 但生产产品可能需要更长的时间,您可能会发现新工具并不比旧工具好。

一半和一半

尝试启动两个项目,并在每个项目中构建相同的东西,只需使用其他工具。这将花费更长的时间,但您应该能够非常快速地查看您喜欢/最适合您的任务的工具。

替代

我不太确定django的意思是'不自然'。 Django可以进行服务器/客户端通信 - 只需使用一些AJAX与django服务器对话,然后调用另一个pythonic库来处理请求。 django的Python替代品包括精彩的flaskweb.py,但除非您对它们进行编程(如django),否则它们都不会进行客户端/服务器通信。如果你没有进入python,你可以试试ruby on rails。对于客户端,您需要了解JavaScript的内容,所以去了解(coffescriptjQuery可以缓解JS的痛苦,但首先要学习JavaScript。)

当然你可以咬紧牙关,然后选择node.js作为服务器基础,显然它非常好(我还没试过) - 用JS编写。

编辑: 根据您的意见,请仔细查看

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

对于实时Web应用程序,我建议您使用websockets,它们可以是安全的,响应时间非常快,因为连接时不再有通信开销。如果你精通python,你可以使用twisted在python autobahn中创建服务器,在python和/或javascript中创建客户端。附: here是一个非常好的扭曲教程。