• FastAPI 使用的框架


    FastAPI 使用的框架

    • Pydantic
      • Pydantic 是一个库,基于Python类型提示来定义数据验证,序列化和文档(使用JSON模式)。这使其非常直观。它可与 Marshmallow 媲美。尽管在基准测试中它比Marshmallow 更快。并且由于它基于相同的Python类型提示,因此对编辑器的支持非常棒。

      • FastAPI使用它来处理所有数据验证,数据序列化和自动模型文档(基于JSON Schema)。然后,FastAPI 会获取该 JSON Schema 数据并将其放入OpenAPI 中,除此之外它还会执行其他所有操作。

    • Starlette
      • Starlette 是目前测试最快的 Python 框架。只有 Uvicorn 超越了它,Uvicorn 不是框架,而是服务器。

      • Starlette 提供了所有基本的 Web 微框架功能。但是它不提供自动数据验证,序列化或API 文档。

      • 这是 FastAPI 在顶部添加的主要内容之一,全部基于Python类型提示(使用Pydantic)。以及依赖注入系统,安全实用程序,OpenAPI 模式生成等。
      • Starlette 是一种轻量级的 ASGI 框架/工具包,是构建高性能 asyncio 服务的理想选择。它非常简单直观。它的设计易于扩展,并具有模块化组件。

        • 令人印象深刻的性能
        • WebSocket支持
        • GraphQL支持
        • 处理中的后台任务
        • 启动和关闭事件
        • 测试基于 requests 的客户端
        • CORS,GZip,静态文件,流式响应
        • 会话和 Cookie 支持
        • 100% 的测试覆盖率
        • 100% 类型注释的代码库
        • 零硬依赖性
    • Uvicorn
      • Uvicorn 是基于 uvloop 和 httptools 构建的如闪电般快速的 ASGI 服务器。它不是Web框架,而是服务器。例如,它不提供用于按路径进行路由的工具。那是像 Starlette(或FastAPI)这样的框架可以提供的。它是 Starlette 和 FastAPI 的推荐服务器。

      • FastAPI 推荐它为主 Web服务器运行 FastAPI 应用程序。您可以将其与 Gunicorn 结合使用,以拥有异步多进程服务器。在“ 部署” 部分中查看更多详细信息。

    技术细节:

       ASGI 是 Django 核心团队成员开发的新“标准”。尽管他们正在这样做,但它仍然不是“ Python标准”(PEP)。但是,它已经被多种工具用作“标准”。这可以大大提高互操作性,因为您可以将 Uvicorn 切换到任何其他 ASGI 服务器(例如 Daphne 或 Hypercorn),也可以添加与ASGI兼容的工具,例如 python-socketio。

      FastAPI 使用它来处理所有核心 Web 部件。在顶部添加功能。类 FastAPI 本身直接继承Starlette。因此,使用 Starlette 可以执行的任何操作,都可以直接使用 FastAPI 进行。

    https://zhuanlan.zhihu.com/p/111710808

  • 相关阅读:
    BZOJ 3992: [SDOI2015]序列统计
    BZOJ 4836: [Lydsy1704月赛]二元运算
    2.Add Two Numbers
    [RN] React Native 调试技巧
    [商业世界] 商业三流:信息流、资金流、物流
    [杂谈] 记 程序员 对抗失眠烦恼的 大法
    [未来成长]让写作成为一种生活习惯
    [未来成长] 分享:《麦肯锡教我的写作武器》如何写出一篇具有逻辑表现力的文案
    [未来成长] 分享:在腾讯的八年,我的职业思考
    [PHP]:AES对称加密 -- 支持PHP7
  • 原文地址:https://www.cnblogs.com/Mint-diary/p/14506137.html
Copyright © 2020-2023  润新知