python - Twisted/Cyclone/Tornado 的高阶网络框架/附加组件(网络登录/用户/管理员)?

标签 python flask twisted tornado cyclone

我正在为可扩展的物联网应用程序的一些架构选择而苦苦挣扎。

我选择将我的项目基于 Twisted增加了 Cyclone框架提供很多Tornado惯例(websockets、auth-decorators、secure-cookies 等)

使用 Twisted 核心对我来说效果很好。我有许多 IP 协议(protocol)和硬件接口(interface),所有这些都在 Twisted 内部得到了很好的库支持(并且向我的应用程序添加新协议(protocol)和接口(interface)是我最有可能让项目范围蔓延的角度),所有这些都需要 Twisted非常低的 CPU 并提供非常高的连接数。

我的问题在于二阶网络应用功能。

我引入 Cyclone 是因为我认为有了它的授权好东西(OpenID、oauth、用户授权装饰器和安全 cookie),在我的 web 应用程序中实现用户/ session /管理功能并不需要太多。在 500 多行抽象我的数据库(通过 txmongo )和 只是 建立用户登录后,我变得很清楚:

  1. 不明白 Cyclone/Tornado 在用户/ session /管理空间中带来的影响有多大,并且
  2. 如果您尝试构建多用户身份验证 Web 应用程序,不了解填补空白所需的代码量

一位 friend 指出我 Flask ,最初我认为这是完全多余的,直到我发现 flask plugins . Flask-Login的组合和 Flask-Admin将完全满足我的用户、 session 和用户管理员的需求,使我无法编写我认为大约 2k 行的代码。不幸的是,flask 插件都充斥着阻塞代码和对阻塞库的调用。我不认为它们与我的项目兼容,即使 WSGI containers鉴于用户/ session 功能在每次页面加载时都会发生(此外,我没有看到任何捷径可以让我将它们移植到异步世界而无需大致等于重写它们的工作)

我的问题是:

在 python 异步空间中(...希望在 Twisted 空间中,考虑到我的协议(protocol)需求),是否有任何插件或替代框架提供类似于 Flask 中的现成用户/登录/管理功能-登录和 Flask-Admin?

附言我看过 Klein作为明显的 Flask Twisted 版本,但它似乎没有插件生态系统,而且我在那里找不到任何强大的用户/ session /管理员。

附言到我写这个问题时,我已经编写了自己的(蹩脚的)用户登录 session 系统。所以我真正追求的是“管理”功能(用户样式记录上的自动 CRUD 功能,包括 Web UI 呈现,所有这些都以 Twisted/async 方式设计)。我在问题中询问了用户/登录,以防万一发现有一个已经集成的解决方案(例如 flask-login 和 flask-admin),在这种情况下我会很乐意放弃我的代码并切换到那个。

最佳答案

你真的需要所有异步的东西吗?考虑异步 WebSockets 但同步页面呈现。如果必须,添加一个异步下游代理或负载平衡器,这实际上会消除应用服务器的 IO 开销。

关于python - Twisted/Cyclone/Tornado 的高阶网络框架/附加组件(网络登录/用户/管理员)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23301210/

相关文章:

python - Twisted 中的 twistd 无法在窗口中运行

python - 使用 IPC、Twisted 或 ZeroMQ 的架构方法?

python - 如何通过工厂使用扭曲协议(protocol)发送数据

python - 如何从 plt.imshow() 获取数据?

python - Readline 自动完成和空格

javascript - 在 Python Flask 服务器上使用 FileDrop.js 上传文件

Python/Flask - 突然出现 "ImportError: No module named..."错误

python - 如何打印字符串中重复的一个字母?

python - MySql:它会死锁到许多插入 - Django 吗?

python - 使用 Python (Flask) 的多个 404 错误页面