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

Python Twisted/Cyclone/Tornado的高阶web框架/附加组件(web登录/用户/管理员)?,python,flask,twisted,tornado,cyclone,Python,Flask,Twisted,Tornado,Cyclone,我正在为可伸缩物联网应用程序的一些架构选择而苦苦挣扎 我选择将我的项目建立在框架的基础上,以提供许多约定(WebSocket、身份验证装饰器、安全cookie等) 使用扭曲的核心对我来说非常有效。我有许多IP协议和硬件接口,所有这些都在twisted内部提供了强大的库支持(向我的应用程序添加新的协议和接口是我最有可能进行项目范围扩展的角度),twisted需要非常低的CPU并提供非常高的连接计数 我的问题是二阶webapp功能 我加入了Cyclone,认为使用它的身份验证功能(OpenID、oa

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

我选择将我的项目建立在框架的基础上,以提供许多约定(WebSocket、身份验证装饰器、安全cookie等)

使用扭曲的核心对我来说非常有效。我有许多IP协议和硬件接口,所有这些都在twisted内部提供了强大的库支持(向我的应用程序添加新的协议和接口是我最有可能进行项目范围扩展的角度),twisted需要非常低的CPU并提供非常高的连接计数

我的问题是二阶webapp功能

我加入了Cyclone,认为使用它的身份验证功能(OpenID、oauth、用户身份验证装饰器和安全cookie),在我的webapp中实现用户/会话/管理功能不需要太多。在对我的数据库(via)进行了500多行的抽象并建立了用户登录之后,很明显我:

  • 不明白旋风/龙卷风给用户/会话/管理空间带来的影响有多小,以及
  • 如果您试图构建一个多用户auth webapp,则不理解需要多少代码来填补空白
  • 一位朋友指着我,起初我认为这是完全多余的,直到我发现。and的组合将完全满足我的用户、会话和用户管理需求,使我无法编写大约2k行的代码。不幸的是,flask插件都充斥着阻塞代码和对阻塞库的调用。我不认为它们与我的项目兼容,即使在每次加载页面时都会使用用户/会话功能的情况下(此外,我也不认为有任何捷径可以让我将它们移植到异步世界,而不需要进行与重写大致相同的工作)

    我的问题是:

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

    另外,我认为Flask是明显扭曲的版本,但它似乎没有插件生态系统,我也没有发现任何强大的用户/会话/管理员


    p.p.S.在我写这个问题的时候,我已经写了我自己的(糟糕的)用户登录会话系统。所以我真正想要的是“管理”功能(用户风格记录上的自动CRUD函数,包括web UI呈现,所有这些都是以扭曲/异步方式设计的)。我在问题中询问了有关用户/登录的问题,以防有一个已经集成的解决方案(如flask login和flask admin),在这种情况下,我很乐意放弃我的代码并切换到该解决方案。

    您真的需要所有东西都是异步的吗?考虑异步WebSooSts,但同步页面渲染。如果必须的话,添加一个异步下游代理或负载平衡器,这将实际上消除app server的IO开销。

    有一些人尝试向Tornado添加会话支持,尽管他们似乎都不再维护:。我也没有用过,所以我不确定它们的质量。您至少可以借用一些代码。flask-socketio具有异步支持。看看这个:你真的不需要管理员完全异步,对吗?在这种情况下,您可以在twisted WSGIResource中使用Flask Admin。至于会话内容,我来这里是为了寻找相同的答案:)@Mike Lutz:听起来你好像在试图把很多责任推到web服务器上。我最大的建议是告诉您,不是所有的东西都必须在同一个库上运行,或者作为同一个实例运行。@dpn我不明白您为什么不想执行异步。如果您使用的是twisted,那么您可能有一个真正好的异步用例。混合同步代码是个坏主意。我还在twisted中寻找用户管理。这是我所能看到的扭曲生态系统中最大的缺失。