# fastapi-template **Repository Path**: pureoo/fastapi-template ## Basic Information - **Project Name**: fastapi-template - **Description**: 根据Fastapi最佳实践编写,是一个用于快速初始化FastAPI结构的项目 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 7 - **Forks**: 2 - **Created**: 2024-02-25 - **Last Updated**: 2024-11-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: Python, FastAPI ## README # fastapi-template #### 介绍 fastapi-template是一个用于快速初始化FastAPI结构的项目,仅在FastAPI框架基础上安装了sqlalchemy和pymysql依赖,封装了全局异常处理、sqlalchemy初始化,以及路由权限拦截中间件、实体数据库模型示例代码。其他目录结构可以自行调整,非常适合用于项目初始化模板。 #### 软件架构 fastapi-template采用以下软件架构: - Python Web 框架:FastAPI - 数据库:MySQL - ORM:SQLAlchemy #### 安装教程 1. 克隆仓库到本地 2. 进入项目目录: `cd fastapi-template` 3. 安装项目依赖: `pip install -r requirements.txt` 4. 修改数据库连接配置 在`config.py`中修改数据库连接配置 5. 启动项目: `uvicorn main:app --reload` 这将启动FastAPI应用程序,由于在main.py中使用了:`Base.metadata.create_all(bind=engine)` 所以会自动创建数据表到数据库中,如果不需要可以注释这段代码。 6. 访问API文档: 打开浏览器,访问http://127.0.0.1:8000/docs 即可查看自动生成的API文档。 #### 使用说明 实际开发时, 路由函数的示例如下: ```` router = APIRouter(prefix='/login') # 导入APIRouter @router.post('/check') # 路由地址 @permission_required("system:login") # 权限拦截中间件装饰器,需要传入权限标识 @unified_resp # 统一响应处理装饰器 async def login(request: Request, params: LoginCheckIn): # 业务逻辑 return {"token":"123456789"} ```` - 最后在main.py中,将APIRouter注册到app中即可: ` app.include_router(login.router, prefix='/admin')` #### 项目结构 ``` |-- app |-- admin # 后台应用 |-- routers # 路由 |-- schemas # 参数模型 |-- service # 服务 |-- dependencies # 核心依赖 |-- exceptions # 全局异常 |-- middleware # 中间件 |-- models # sqlalchemy模型 |-- utils # 工具 |-- config.py # 全局配置 |-- main.py # 入口文件 |-- requirements.txt # 项目依赖文件 ```