Twisted/Cyclone/Tornado的高阶Web框架/附件(Web登录/用户/管理员)?

Mik*_*utz 10 python twisted tornado flask cyclone

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

我选择将我的项目建立在Cyclone框架的Twisted扩充上,以提供许多Tornado规范(websockets,auth-decorators,secure-cookies等)

使用Twisted核心对我来说非常漂亮.我有许多IP协议和硬件接口,所有这些都被证明在扭曲内部有很好的库支持(并且我的应用程序添加新的协议和接口是最可能的角度,我将有项目范围蔓延),所有这些都需要Twisted非常低的CPU并提供非常高的连接数.

我的问题是二阶webapp功能.

我在Cyclone中认为,使用它的auth goodies(OpenID,oauth,用户身份验证装饰器和安全cookie),在我的webapp中实现用户/会话/管理功能并不需要太多.在500多行抽象我的数据库(通过txmongo)并且只是构建用户登录之后,我很清楚:

  1. 不明白Cyclone/Tornado如何带来用户/会话/管理空间,以及
  2. 如果您尝试构建多用户身份验证webapp,则无法理解填补空白所需的代码量

一位朋友在Flask指出我,最初我认为这是完全多余的,直到我找到烧瓶插件.Flask-LoginFlask-Admin的组合将完全覆盖我的用户,会话和用户管理需求,否定我写下我猜想的2k行代码.不幸的是,烧瓶插件充斥着阻塞代码并调用阻塞库.我没有看到它们与我的项目兼容,即使使用了WSGI 容器,因为每次加载页面都会发生用户/会话功能(另外我没有看到任何允许我将它们移植到异步世界的快捷方式工作大致相当于重写它们的工作)

我的问题是:

在python异步空间(...希望在Twisted空间中,根据我的协议需要),是否有任何插件或备用框架提供类似于Flask-Login中的现成用户/登录/管理功能烧瓶管理员?

PS我把Klein视为Flask的明显Twisted版本,但它似乎没有插件生态系统,而且我找不到任何强大的用户/会话/管理员.

PPS当我写这个问题时,我已经编写了自己的(糟糕的)用户登录会话系统.所以我真正追求的是"管理"功能(用户风格记录上的自动CRUD功能,包括Web UI渲染,所有这些都以Twisted/async方式设计).我询问了问题中的用户/登录,如果事实证明有一个已经整合的解决方案(例如flask-login和flask-admin),在这种情况下,我很乐意放弃我的代码并切换到那个.

jwa*_*ker 2

你真的需要一切异步吗?考虑异步 WebSocket 但同步页面呈现。如果必须,请添加异步下游代理或负载均衡器,这将几乎消除应用服务器的 IO 开销。