美文网首页
FastAPI使用笔记

FastAPI使用笔记

作者: 空山晚来秋 | 来源:发表于2022-05-31 23:24 被阅读0次

    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使用笔记

          本文链接:https://www.haomeiwen.com/subject/djltmrtx.html