首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Sanic或异步框架使用Asgiref的原因?

Python Sanic或异步框架使用Asgiref的原因?
EN

Stack Overflow用户
提问于 2018-05-03 14:10:35
回答 2查看 808关注 0票数 0

我理解答案是“始终取决于”,但一般来说,在异步框架(如Sanic )中使用asgiref包装器是否有理由。

https://github.com/django/asgiref https://github.com/channelcat/sanic

我的主要问题是,为什么会有人在异步框架中使用这个,我理解Django的用例,但是如果您是异步编程的话,这样的事情似乎有点懒散地处理问题。

告诉我我错了。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-05-03 21:40:16

我对asgiref并不特别熟悉。然而,尽管如此,我熟悉asgi作为wsgi的替代品的想法。

就Sanic而言,这是不相关的。Sanic有自己的服务器内置在,并且它在开箱即用异步操作。

我不想告诉你,你本身是错的,但我不认为它在卫生的世界中有什么用处。

票数 2
EN

Stack Overflow用户

发布于 2018-08-15 13:57:54

第一,背景:

一些异步框架(如sanicaiohttp )早于ASGI的成熟点,因为它适合作为异步服务器/应用程序接口。

因此,他们已经将webserver实现内置到他们的代码库中。他们可以使用ASGI作为接口,而不是他们自己的内部接口,但这意味着他们的维护人员要做大量的工作。

那么,为什么这是值得的努力呢?

如果他们这么做的话,他们会得到的好处是:

  • 能够在一系列不同的服务器实现下运行。(要么是它们自己的实现,要么是任何uvicornhypercorndaphne服务器。)能够透明地在服务器实现之间切换提供了一个更健壮的生态系统,并意味着服务器实现可以跨框架共享。Sanic将获得具有HTTP/2支持、Windows支持和PyPy支持的服务器实现,并解决套接字流控制中存在的一些未决问题。
  • 能够从共享中间件和其他工具中获益。能够编写跨任何ASGI框架的中间件有助于整个生态系统。您可以编写调试中间件、静态文件服务、测试客户端等。它适用于任何ASGI框架,而不是为每个框架构建新的东西。
  • 复杂度较低。拥有经过彻底设计和独立的服务器/应用程序接口有助于减少开发人员在查看应用程序框架内部时需要考虑的表面积,因为这意味着您在服务器代码和应用程序代码之间有一个非常好的文档化的边界。
  • 可合成的。因为ASGI是一个可组合的接口,所以您可以将它以有用的方式组合起来。例如,在同一个two服务器上提供两个不同的Sanic应用程序。

简而言之,ASGI是有益的,其原因与WSGI有益的原因相同。现在,对于sanic来说,这并不是一个胜利,因为他们已经完成了编写服务器实现的所有繁重工作,但是这样做还是有好处的,这对整个社区来说绝对是一场胜利。

相关:Sanic的ASGI机票.

(还请注意,asgiref只是一个Python包,其中有一些用于使用ASGI框架的助手,这也恰好是保存ASGI规范文档的回购程序。问题在于使用ASGI,而不是使用asgiref)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50157137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档