网站建设定制开发如何评价最近爆红的FastAPI?

一度觉得 sanic是python web的未来,支持异步,性能好,类flask的语法,代码简单,没想到被fastapi截胡了,fastapi在github网站建设定制开发的上星速度非常快。网站建设定制开发它在怎么样把后端api网站建设定制开发做好的这件事情上,做的比sanic更全面,更彻底。

FastAPI

FastAPI 网站建设定制开发是用于构建 Web 的现代、开源、快速、高性能的 Web 框架,它基于Python 3.6+ 网站建设定制开发标准类型提示,支持异步,网站建设定制开发正如它的名字,FastAPI 网站建设定制开发就是为构建快速的 API 而生。

优点

  • 速度快:可与 NodeJS 和 Go 网站建设定制开发比肩的极高性能(归功于 Starlette 和 Pydantic),是最快的 Python 网站建设定制开发网络框架之一
  • 开发快:网站建设定制开发开发速度提高约 200% 至 300%
  • Bug 少:网站建设定制开发人为错误减少约 40%*
  • 智能:网站建设定制开发强大的编辑器支持,处处皆可自动补全,减少调试时间
  • 简单:易学、易用,阅读文档所需时间更短
  • 简短:代码重复最小化,通过不同的参数声明实现丰富功能,Bug 更少
  • 健壮:生产级别的代码,还有自动交互文档
  • 标准:完全兼容并基于 API 开放标准:OpenAPI 和 JSON Schema

缺点

由于 FastAPI 相对较新,因此与其他框架相比,社区较小,第三方的教程相对较少。

用例

FastAPI 适用于构建高性能的 API,本身支持异步,如果要构建异步 API,可以优先选择 FastAPI。Netflix 将其用于内部危机管理。它还可以在部署准备就绪的机器学习模型时完美缩放,因为当 ML 模型封装在 REST API 并部署在微服务中时,它在生产中会发挥最佳作用。

特性

FastAPI 特性

FastAPI 提供了以下内容:

基于开放标准

  • 用于创建 API 的  包含了路径操作,请求参数,请求体,安全性等的声明。
  • 使用  (因为 OpenAPI 本身就是基于 JSON Schema 的)自动生成数据模型文档。
  • 经过了缜密的研究后围绕这些标准而设计。并非狗尾续貂。
  • 这也允许了在很多语言中自动生成客户端代码

自动生成文档

交互式 API 文档以及具探索性 web 界面。因为该框架是基于 OpenAPI,所以有很多可选项,FastAPI 默认自带两个交互式 API 文档。

  • ,可交互式操作,能在浏览器中直接调用和测试你的 API 。

  • 另外的 API 文档:

更主流的 Python

全部都基于标准的 Python 3.6 类型声明(感谢 Pydantic )。没有新的语法需要学习。只需要标准的 Python 。

如果你需要2分钟来学习如何使用 Python 类型(即使你不使用 FastAPI ),看看这个简短的教程:。

编写带有类型标注的标准 Python:

  1. from datetime import date
  2. from pydantic import BaseModel
  3. # Declare a variable as a str
  4. # and get editor support inside the function
  5. def main(user_id: str):
  6. return user_id
  7. # A Pydantic model
  8. class User(BaseModel):
  9. id: int
  10. name: str
  11. joined: date

可以像这样来使用:

  1. my_user: User = User(id=3, name="John Doe", joined="2018-07-19")
  2. second_user_data = {
  3. "id": 4,
  4. "name": "Mary",
  5. "joined": "2018-11-30",
  6. }
  7. my_second_user: User = User(**second_user_data)

Info
**second_user_data 意思是:
直接将second_user_data字典的键和值直接作为key-value参数传递,等同于:User(id=4, name="Mary", joined="2018-11-30")

编辑器支持

整个框架都被设计得易于使用且直观,所有的决定都在开发之前就在多个编辑器上进行了测试,来确保最佳的开发体验。

在最近的 Python 开发者调查中,我们能看到 。

整个 FastAPI 框架就是基于这一点的。任何地方都可以进行自动补全。

你几乎不需要经常回来看文档。

在这里,你的编辑器可能会这样帮助你:

  •  中:

  •  中:

你将能进行代码补全,这是在之前你可能曾认为不可能的事。例如,在来自请求 JSON 体(可能是嵌套的)中的键 price

不会再输错键名,来回翻看文档,或者来回滚动寻找你最后使用的 username 或者 user_name 。

简洁

任何类型都有合理的默认值,任何和地方都有可选配置。所有的参数被微调,来满足你的需求,定义成你需要的 API。

但是默认情况下,一切都能“顺利工作”

验证

  • 校验大部分(甚至所有?)的 Python 数据类型,包括:
    • JSON 对象 (dict).
    • JSON 数组 (list) 定义成员类型。
    • 字符串 (str) 字段, 定义最小或最大长度。
    • 数字 (intfloat) 有最大值和最小值, 等等。

  • 校验外来类型, 比如:
    • URL.
    • Email.
    • UUID.
    • ...及其他.

所有的校验都由完善且强大的 Pydantic 处理。

安全性及身份验证

集成了安全性和身份认证。杜绝数据库或者数据模型的渗透风险。

OpenAPI 中定义的安全模式,包括:

  • HTTP 基本认证。
  • OAuth2 (也使用 JWT tokens)。在 查看教程。
  • API 密钥,在:
    • 请求头。
    • 查询参数。
    • Cookies, 等等。

加上来自 Starlette(包括 session cookie)的所有安全特性。

所有的这些都是可复用的工具和组件,可以轻松与你的系统,数据仓库,关系型以及 NoSQL 数据库等等集成。

依赖注入

FastAPI 有一个使用非常简单,但是非常强大的依赖注入系统。

  • 甚至依赖也可以有依赖,创建一个层级或者“图”依赖
  • 所有自动化处理都由框架完成。
  • 所有的依赖关系都可以从请求中获取数据,并且增加了路径操作约束和自动文档生成。
  • 即使在依赖项中被定义的路径操作 也会自动验证
  • 支持复杂的用户身份认证系统,数据库连接等等。
  • 不依赖数据库,前端等。 但是和它们集成很简单。

无限制"插件"

或者说,导入并使用你需要的代码,而不需要它们。

任何集成都被设计得被易于使用(用依赖关系),你可以用和路径操作相同的结构和语法,在两行代码中为你的应用创建一个“插件”。

测试

  • 100% 测试覆盖。
  • 代码库100% 类型注释。
  • 用于生产应用。

Starlette 特性

FastAPI 和  完全兼容(并基于)。所以,你有的其他的 Starlette 代码也能正常工作。FastAPI 实际上是 Starlette的一个子类。所以,如果你已经知道或者使用 Starlette,大部分的功能会以相同的方式工作。

通过 FastAPI 你可以获得所有 Starlette 的特性 ( FastAPI 就像加强版的 Starlette ):

  • 令人惊叹的性能。它是 。
  • 支持 WebSocket 。
  • 支持 GraphQL 。
  • 后台任务处理。
  • Startup 和 shutdown 事件。
  • 测试客户端基于 requests
  • CORS, GZip, 静态文件, 流响应。
  • 支持 Session 和 Cookie 。
  • 100% 测试覆盖率。
  • 代码库 100% 类型注释。

在线中文文档


对python感兴趣的小伙们,这有免费学习教程python基础入门15天,不长不短适合小白

下面这个教程是适合0基础的,liunx都是0基础讲的,很多不好理解的地方都用了各种形象的例子。

 

总的来说这个教程,很适合刚入门没有什么基础的伙伴学,有其他语言基础的伙伴可以两倍速快速刷,效率很高,时间上可以这样分配,用15天去学

  • 1-3 天内容为Linux基础命令
  • 4-13 天内容为Python基础教程
  • 14-15 天内容为 飞机大战项目演练

入门后还想多学,这些Python好课可以继续:

  • python大数据方向


    2022年大数据spark3.2入门
    2022年MySQL基础入门

    Python+大数据开发
    MySQL数据库:
    Hadoop入门:
    Hive数仓项目:

    PB内存计算
    Python入门:
    Python编程进阶:
    spark3.2从基础到精通:
    Hive+Spark离线数仓工业项目实战:


     

趁着年轻,不怕多吃一些苦。这些逆境与磨练,才会让你真正学会谦恭。不然,你那自以为是的聪明和藐视一切的优越感,迟早会毁了你。

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发