FastAPI使用笔记

FastAPI 框架,高性能,易于学习,高效编码,生产可用

这是FastAPI官网对框架的描述

FastAPI 是一个用于构建 API 的现代、快速(高性能)的 web 框架,使用 Python 3.6+ 并基于标准的 Python 类型提示。

关键特性:

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

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

  • 更少 bug:减少约 40% 的人为(开发者)导致错误。*

  • 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。

  • 简单:设计的易于使用和学习,阅读文档的时间更短。

  • 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。

  • 健壮:生产可用级别的代码。还有自动生成的交互式文档。

  • 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。

摘自FastAPI官网

如果用于生产,为了使代码更加易读、便于维护,需要将代码拆分为各个模块。

官网给出了多模块应用的目录结构:

├── app                  # 「app」是一个 Python 包
│   ├── __init__.py      # 这个文件使「app」成为一个 Python 包
│   ├── main.py          # 「main」模块,例如 import app.main
│   ├── dependencies.py  # 「dependencies」模块,例如 import app.dependencies
│   └── routers          # 「routers」是一个「Python 子包」
│   │   ├── __init__.py  # 使「routers」成为一个「Python 子包」
│   │   ├── items.py     # 「items」子模块,例如 import app.routers.items
│   │   └── users.py     # 「users」子模块,例如 import app.routers.users
│   └── internal         # 「internal」是一个「Python 子包」
│       ├── __init__.py  # 使「internal」成为一个「Python 子包」
│       └── admin.py     # 「admin」子模块,例如 import app.internal.admin

在这里,可以把整个app看作一个python包,但这里只有FastAPI的基础功能。如果自己需要一些日志、配置,可将它放在与app目录平级的目录下。我自己用的目录结构如下

├── alembic            # alembic数据迁移自动生成模块
│   ├── README
│   ├── env.py
│   ├── script.py.mako
│   └── versions
│       └── 78864af08bb7_first_commit.py
├── alembic.ini        # alembic配置文件
├── apis              # FastAPI应用
│   ├── __init__.py
│   ├── apis.py        # FastAPI总接口
│   ├── login          # login模块
│   │   ├── __init__.py
│   │   └── controller.py  # login相关方法
│   └── users          # user模块
│       ├── __init__.py
│       └── controller.py  # user相关方法
├── core              # 基础配置
│   ├── __init__.py
│   ├── config.py
│   └── db.py
├── logs              # 日志
│   └── 2022-05-31.log
├── main.py            # FastAPI启动方法,调用apis.apis import api_router
├── main2.py
├── models            # 数据表模块
│   ├── __init__.py
│   ├── base.py        # 数据表基础模块
│   ├── record        # 操作日志表
│   │   ├── __init__.py
│   │   └── models.py
│   └── user          # 用户表
│       ├── __init__.py
│       └── models.py
├── requirements.txt 
├── run.sh            # 启动脚本
├── schema            # 数据处理
│   ├── __init__.py
│   └── user.py
└── utils              # 工具包
 ├── Record.py 
 ├── __init__.py
 └── logger.py      # 日志模块

以上目录结构能满足自己大部分的开发需求
因为账号问题,代码等几天再上传
以后会在此模板上继续更新

你可能感兴趣的:(FastAPI使用笔记)