新西兰服务器

异步Python框架有哪些


异步Python框架有哪些

发布时间:2021-11-24 18:00:08 来源:高防服务器网 阅读:83 作者:小新 栏目:大数据

这篇文章主要介绍了异步Python框架有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

1、Tornado

Tornado 根本不是什么新框架,它最初是由FriendFeed(后被Facebook收购)在2009年发布。  从一开始就提供有异步编程的功能。
Tornado 不仅仅是Web框架,同时它内置了很多异步模块,可用于自己构建异步应用。  这些模块包括:
  • 协同程序和其他原语(tornado.gen,tornado.locks,tornado.queues等)
  • 网络模块(tornado.ioloop,tornado.iostream)
  • 异步服务器和客户端(tornado.httpserver,httpclient,等)
通过这些模块,Tornado 构建了自己的异步Web框架模块。
              
import tornado.ioloop        
       import tornado.web        
       
       class MainHandler(tornado.web.RequestHandler):        
           def get(self):        
               self.write("Hello, world")        
       
       def make_app():        
           return tornado.web.Application([        
               (r"/", MainHandler),        
           ])        
       
       if __name__ == "__main__":        
           app = make_app()        
           app.listen(8888)        
           tornado.ioloop.IOLoop.current().start()      
Tornado在Python社区中拥有很多追随者,并且经验丰富的架构师使用它们来构建功能强大的系统。  这个框架长期以来一直在解决并发问题,但是由于它不支持WSGI标准(大部分Python库仍在同步中),因此尚未成为主流。
国内据说知乎是基于Torando构建的。

2、 Snaic

Sanic是一个诞生有3年的框架:  它只支持3.6以上Python版本,支持通用的async / await语法,开箱即用,因此你无需阅读大量文档就可以写出你的一个HTTP 处理器。
除了  async  关键字之外,语法上和 flask 基于没差别。
              
from sanic import Sanic        
       from sanic.response import json        
       
       app = Sanic()        
       
       @app.route("/")        
       async def test(request):        
           return json({"hello": "world"})        
       
       if __name__ == "__main__":        
           app.run(host="0.0.0.0", port=8000)      
Sanic可以说是Python世界中最流行和最受欢迎的异步框架。  它具有你项目中需要的所有功能:  路由,中间件,Cookie,版本控制,蓝图,基于类的视图,静态文件,流,sockets,此外你还可以集成模板,数据库驱动,文件I / O,队列等等。

3、Vibora

Vibora和Sanic非常像,致力于成为最快的Python Web服务器。  他们网站首页有一个框架比较图:
Vibora声称比其它框架快几倍,比竞争对手Sanic还快两倍多。  当然,这个基准测试要持怀疑态度。
尽管在语法和功能上,Vibora可以与Sanic媲美但我认为Sanic更加成熟,因为它已经存在了很长一段时间并且具有更大的社区。
              
from vibora import Vibora, JsonResponse        
       
       app = Vibora()        
       
       @app.route('/')        
       async def home():        
           return JsonResponse({'hello': 'world'})        
       
       if __name__ == '__main__':        
           app.run(host="0.0.0.0", port=8000)      

4、Quart

如果您喜欢Flask,但又要支持异步, 那么Quart你一定会喜欢
Quart符合ASGI标准,该标准是WSGI标准的后继产品,并提供异步支持。  Quart不仅与Flask相似,而且与Flask API兼容!  该框架的作者希望保留了Flask的风格,只是向其中添加异步、WebSocket和HTTP 2支持。  因此,你可以从Flask文档中学习Quart的用法,只需要记住Quart中的函数是异步的就行。
              
from quart import Quart        
       
       app = Quart(__name__)        
       
       @app.route('/')        
       async def hello():        
           return 'hello'        
       
       app.run()      
几乎完全像Flask
由于Quart是从Flask中演进过来的,因此Flask的所有功能均可用:  路由,中间件,会话,模板,蓝图等。  实际上,你甚至可以直接在Quart内部使用Flask的扩展插件。  不过,有一个问题是它仅支持Python 3.7+。

5、FastAPI

FastAPI似乎是异步 Python 框架里功能、文档最丰富的框架。
该框架的作者深入研究了其他几个框架,从诸如Django到Sanic之类的现代框架,以及NestJS(Node.js,Typescript Web框架)。
语法甚至可以说它比我们遇到的其他框架更有趣:
              
rom fastapi import FastAPI        
       
       app = FastAPI()        
       
       @app.get("/users/me")        
       async def read_user_me():        
           return {"user_id": "the current user"}        
       
       @app.get("/users/{user_id}")        
       async def read_user(user_id: str):        
           return {"user_id": user_id}      
FastAPI胜过其他框架的杀手锏,  自动生成API文档:
编写API接口后,你就可以使用符合标准的UI如SwaggerUI,ReDoc等来使用API。

那性能呢?  FastAPI是基于Starlette库构建的,其性能可与Node相匹配,在某些情况下甚至可以与Go相匹配。  总而言之,我真的有一种感觉,FastAPI将成为Python的顶级异步框架。

感谢你能够认真阅读完这篇文章,希望小编分享的“异步Python框架有哪些”这篇文章对大家有帮助,同时也希望大家多多支持高防服务器网,关注高防服务器网行业资讯频道,更多相关知识等着你来学习!

[微信提示:高防服务器能助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。

[图文来源于网络,不代表本站立场,如有侵权,请联系高防服务器网删除]
[