Python之FastAPI框架简介

1.简介

  • FastAPI 是一个现代化的高性能 Web 框架,可用于构建 API 和微服务。它基于 Python 语言,充分利用了 Python 3.6+ 中的异步语法,同时使用 Pydantic 库来提供自动数据验证和文档生成。FastAPI 的设计旨在提高开发速度、代码可维护性和生产环境的性能表现。
  • FastAPI 包含官方支持的自动化文档生成、请求数据验证、负载平衡、高性能、标准 API 错误响应等功能,同时还支持许多第三方插件、中间件和工具。
  • 相比于常用的 Flask 和 Django 框架,FastAPI 代码量更少,而且能够快速启动、编写和测试异步代码。它是一个非常适合构建现代化 Web 服务的框架,能够在大型团队中提高产品开发的效率和质量。
  • FastAPI跟Flask有许多相似的地方,比如写路由的方法都是在函数上写路由,比如orm模型,官方都是使用第三方库sqlalchemy,写接口方面可以说是Flask框架的强化版,因为支持异步,所以性能更佳。

2.关键特性

  • 快速:可与 NodeJS 和 Go 并肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一

  • 高效编码:提高功能开发速度约 200% 至 300%。*

  • 更少 bug:减少约 40% 的人为(开发者)导致错误。*
  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
  • 简单:设计的易于使用和学习,阅读文档的时间更短。
  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。
  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema

3.部分赞助商

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4.两大核心组件

  • Starlette 负责 web 部分。它是一个支持异步网络服务的框架/工具包,是构建高性能Asycio服务的理性选择。
  • Pydantic 负责数据部分。它是一个基于python类型提示来定义数据验证,序列化和文档的库。

5.安装

pip install fastapi
████████████████████████████████████████ 100%
restart ↻

你还会需要一个 ASGI 服务器,生产环境可以使用 Uvicorn 或者 Hypercorn

pip install "uvicorn[standard]"
████████████████████████████████████████ 100%
restart ↻

6.示例

创建

  • 创建一个 main.py 文件并写入以下内容:
from typing import Union

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: Union[str, None] = None):
    return {"item_id": item_id, "q": q}

或者使用 async def...

运行

通过以下命令运行服务器:

uvicorn main:app --reload
INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO: Started reloader process [28720]
INFO: Started server process [28722]
INFO: Waiting for application startup.
INFO: Application startup complete.

restart ↻

The end! Thanks!

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值