Python的5大异步Web框架

Python的5大异步Web框架

Python的5大异步Web框架

  随着 3.5 版本的asyncio库的发布,Python 承认了 Node.js 对 Web 开发的影响,并在语言中引入了两个新关键字——asyncawait. 这是一个非常重要的事情,因为 Python 语言非常谨慎地扩展核心语法,除非有迫切需要,这仅表明 Python 开发人员认为异步功能的重要性。

  新旧库开始使用协程功能,异步框架大受欢迎,并且今天仍在编写新框架。本文晓得博客为你介绍Python的5大异步Web框架

Tornado

Tornado框架

  Tornado根本不是一个新框架。Tornado 从根本上说不是一个 Web 框架。它是异步模块的集合,也用于构建 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 标准。

  推荐:Beautifulsoup教程

Sanic

  Sanic是一个真正意义上的“现代”框架:它不支持低于 3.6 的 Python 版本,支持开箱即用的简单通用的 async/await 语法。

sanic

  它类似于您使用任何其他微框架(例如 Flask、CherryPy)编写的代码,只添加了一些代码async

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、版本控制、蓝图、基于类的视图、静态文件、流、套接字等——以及它不提供开箱即用的功能— 模板、数据库支持、文件 I/O、队列。

Vibora

  Vibora致力于成为目前最快的 Python Web 服务器。尽管在语法和功能上,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)

Quart

  如果您喜欢在 Flask 中进行开发,但对缺乏异步支持感到遗憾,那么您会非常喜欢Quart

quart

  Quart 符合ASGI标准,该标准是著名的 WSGI 标准的继承者,并提供异步支持。Quart 的有趣之处在于它不仅与 Flask 相似,而且实际上与 Flask API 兼容!可以直接从 Flask 文档中学习 Quart。

from quart import Quart

app = Quart(__name__)

@app.route('/')
async def hello():
    return 'hello'

app.run()

  由于 Quart 是 Fl​​ask 的演变,因此 Flask 内部的所有功能都可用:路由、中间件、会话、模板、蓝图等。事实上,你甚至可以直接在 Quart 中使用 Flask 扩展。

  推荐:Pycharm教程

FastAPI

  FastAPI是我在研究异步 Python 框架时遇到的功能最丰富、文档最丰富的框架。框架作者深入研究了其他几个框架,从像 Django 这样的当代框架到像 Sanic 这样的现代框架,以及跨技术研究 NestJS。

fastapi

  语法非常令人愉快;甚至可以说它比我们遇到的其他框架更有趣:

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 文档生成:可以使用符合标准的 UI 来使用 API。支持 SwaggerUI、ReDoc 等。
  • 现代开发:不仅执行良好的编码原则,而且从长远来看防止错误和混乱。
  • 广泛的文档:FastAPI 毫无疑问地胜出,它有一页又一页的文档解释了几乎每一个小细节!
  • 超越基础: FastAPI 支持 WebSockets、Streaming 和 GraphQL,此外还有 CORS、会话、cookie 等所有传统助手。

结论

  以上是晓得博客为你介绍的Python的5大异步Web框架的全部内容,请务必牢记,一些 Python 异步框架处于早期阶段,并且正在迅速发展,使用需谨慎!

  推荐:零基础如何开始学习Python

给文章评分

ThemeForest 模板套件
可视化创建WordPress网站

发表评论

您的电子邮箱地址不会被公开。

Scroll to Top