fastapi(二十)-大型项目文件结构

如果需要构建应用程序或api,很少将所有的内容都放入一个文件中。
fastapi提供了一个方便的工具可灵活的构建应用。(类似于flask的蓝图)
假如文件结构如下:
.
├── app
│ ├── init.py
│ ├── main.py
│ └── routers
│ ├── init.py
│ ├── items.py
│ └── users.py

  • 该app目录包含所有内容。
  • 该app目录有一个空文件app/init.py。
    • 因此,该app目录是“ Python包”(“ Python模块”的集合)。
  • 该app目录还有一个app/main.py文件。
    • 由于它位于Python软件包目录中(因为存在一个文件__init__.py),因此它是该软件包的“模块”:app.main。
  • 有一个子目录app/routers/。
  • 子目录app/routers也有一个空文件__init__.py。
    • 因此,它是一个“ Python子包”。
  • 该文件app/routers/items.py在旁边app/routers/init.py。
    • 因此,这是一个子模块:app.routers.items。
  • 该文件app/routers/users.py在旁边app/routers/init.py。
    • 因此,这是一个子模块:app.routers.users。
      APIRouter
from fastapi import APIRouter

router = APIRouter()


@router.get("/users/", tags=["users"])
async def read_users():
    return [{"username": "Foo"}, {"username": "Bar"}]


@router.get("/users/me", tags=["users"])
async def read_user_me():
    return {"username": "fakecurrentuser"}


@router.get("/users/{username}", tags=["users"])
async def read_user(username: str):
    return {"username": username}

可以将APIRouter视为“迷你FastAPI”类。
支持所有相同的选项。
所有相同的参数,响应,依赖性,标签等。

然后在main文件中:

from fastapi import Depends, FastAPI, Header, HTTPException

from .routers import items, users

app = FastAPI()


async def get_token_header(x_token: str = Header(...)):
    if x_token != "fake-super-secret-token":
        raise HTTPException(status_code=400, detail="X-Token header invalid")


app.include_router(users.router)
app.include_router(
    items.router,
    prefix="/items",
    tags=["items"],
    dependencies=[Depends(get_token_header)],
    responses={404: {"description": "Not found"}},
)
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
fastapi-mysql-generator 是一个用于快速生成FastAPI和MySQL的框架的工具。FastAPI是一个现代、快速(高性能)的web框架,而MySQL是一个流行的关系型数据库。 使用 fastapi-mysql-generator,可以从一个简单的命令行界面中生成 FastAPI 应用程序,并与 MySQL 数据库集成。这个工具可以自动创建数据库表和模型(Model),并提供一组 API 端点,用于执行常见的 CRUD(创建、读取、更新和删除)操作。 fastapi-mysql-generator 的主要优势之一是它的简单易用性。无论是初学者还是有经验的开发人员,都可以快速上手并生成一个完整的基于FastAPI和MySQL的应用程序。只需要几个简单的步骤,就可以生成项目的基本结构和代码。同时,fastapi-mysql-generator 还提供了一些配置选项,可以根据需求进行自定义设置,以满足特定的应用程序需求。 这个工具还提供了一些有用的特性,以增强开发的效率和便利性。例如,它可以自动生成 API 文档,包括请求和响应模型的文档说明。此外,fastapi-mysql-generator 还支持身份验证和授权功能,以确保 API 路由的安全性。 总而言之,fastapi-mysql-generator 是一个快速生成 FastAPI 和 MySQL 应用程序的方便工具。它简化了应用程序的开发过程,并提供了一些有用的特性,以提高开发效率和便利性。无论是初学者还是有经验的开发人员,都可以受益于这个工具的使用。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值