【发布时间】:2011-08-23 00:17:00
【问题描述】:
我目前正在开发一个复杂的 Web 界面和后端,这需要解决几个问题。
- 可扩展性
- 不同负载需求的多次部署
- 非常结构化的授权组
- 不同用户组的不同视图
- 管理面板
- 用户/内容管理
- 大型托管数据库
- 当前
- 长期存储的数据(历史记录)
- 数据更新
- 轮询
- 例如。搜索查询、静态页面/文件、每个请求生成报告
- 推送(可能是 websocket)
- 例如。实时通知
- 轮询
- 不同的协议
- 例如。 HTTP、SSL、Websockets
我想使用 Python,因为我已经成长为真正喜欢这门语言,并且我正在考虑 Django 和 Twisted 的一些组合。
我对 Django 有一些经验,我喜欢它的 MVT 应用程序编程风格、它的授权模型、它的管理面板和它的数据库 API。但是,在我需要的一些数据需求方面,它并不是那么强大,尤其是在实时方面。
现在,我之前并没有真正使用过 Twisted,但我看到了很多有趣的东西。尤其是异步方面,以及运行多种协议的能力。
让两者一起工作的问题很明显,因为 Django 是一个阻塞服务器,而 Twisted 被设计为非阻塞的。我已经看到一些主题表明将两者结合使用是可能的,并且已经取得了成功。似乎也可以同时运行并代理它们以接受不同的 url,但是通过两者进行身份验证可能会变得很棘手?
说了这么多,我想问一下我是否在实施这个系统的正确轨道上,以及如何将两者结合使用的建议,替代方案,或者我是否应该只踢出一个(在这一点,我想它必须是 Django,因为实时的东西是必要的)。我应该提一下,我已经在 Django 中编写了一些初步的数据模型和视图。
我在客户端(JS、CSS、HTML)方面经验丰富,但在服务器端我不是很精通。任何意见都会有所帮助,谢谢。
【问题讨论】:
-
您是否考虑过像 Tornado 这样的异步 Web 服务器? (tornadoweb.org)
标签: python django web-applications twisted