# FastAPI Starter **Repository Path**: nifty/FastAPI-Starter ## Basic Information - **Project Name**: FastAPI Starter - **Description**: 基于FastAPI,一套CMS系统,集成Tortoise ORM,aioredis,用户管理,上传管理。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 6 - **Created**: 2024-11-28 - **Last Updated**: 2024-11-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FastAPI Starter > 一套基于FastAPI的CMS系统,前后端分离开发平台,融合了 RBAC 权限管理、动态路由和 JWT 鉴权,中小型应用快速搭建。 > 最终产物会结合AI,数据抓取,数据分析。你可以当作业设计,或用于自己工作中。如有更好建议,或使用中遇到问题,请联系作者。 ## 设计规划 - JWT鉴权:使用 JSON Web Token(JWT)进行身份验证和授权,增强应用的安全性。 - 动态路由:后端动态路由,结合 RBAC(Role-Based Access Control)权限模型,提供精细的菜单路由控制。 - 文件上传管理 - 基于以上完成了基础的CMS管理,在此之上,你可以开发绝大部分CMS系统。 ### 其他规划 > 加入 Celery 任务管理。可用于对接AI模型,可以快速完成你的AI产品应用。 > 爬虫任务,数据分析。 ## 运行项目 ```shell # 建议 python 版本 3.10+ # 1.安装依赖 pip install -r requirements.txt # 运行脚本 asgi.py uvicorn main:app --reload # http://127.0.0.1:5000/docs # http://127.0.0.1:5000/redoc ``` ## 相关文档 1. [starlette](https://www.starlette.io/#installation) 2. [FastAPI](https://fastapi.tiangolo.com/zh/) 3. Mysql 异步ORM[Tortoise](https://tortoise.github.io/) 4. Redis 异步[aioredis](https://aioredis.readthedocs.io/) ## 功能模块 - 系统管理 - 用户管理 - 角色管理 - 菜单权限 - 部门管理 - 岗位管理 - 网盘 - 文件管理 - 上传存储管理,方便扩展云存储 - 数据抓取 ## RBAC(Role-Based Access Control)权限模型 system_admin -> role 一对多 role-> role_menu 一对多 menu 目录,菜单(scopes),菜单按钮(scopes) ## 目录结构参考 ``` ├─📂 FastAPI //服务端根目录(管理后台、接口) │ ├─📂 app │ │ ├─📂 admin // 管理后端应用 │ │ │ ├─📂 router //后台应用 api │ │ │ ├─📂 schemas //入参校验数据,输出数据对象schemas │ │ │ ├─📂 service //service 数据处理层 │ │ │ │ │ ├─📂 config //配置文件 │ │ │ ├─📄 settings.py //全站配置 │ │ │ │ │ ├─📂 core //核心依赖 │ │ │ ├─📄 events.py //事件hooks │ │ │ ├─📄 middlewares.py //中间件 │ │ │ ├─📄 response.py //返回方法封装 │ │ │ │ │ ├─📂 service //数据处理层 │ │ ├─📂 dependencies //核心依赖 │ │ │ ├─📄 mysql.py //数据库 │ │ │ ├─📄 redis.py //redis │ │ │ ├─📄 jwt.py //redis │ │ │ │ │ ├─📂 exceptions //全局异常 │ │ ├─📂 models //实体模型 │ │ ├─📂 plugins //扩展插件 │ │ │ ├─📂 storage //存储 │ │ │ │ ├─📄 storage_driver.py //存储类 │ │ │ │ │ ├─📂 temporary //运行时临时文件夹 │ │ ├─📂 utils //工具目录 │ │ │ ├─📄 utils.py //工具方法 │ │ │ │ │ ├─📄 application.py //项目入口文件 │ │ │ ├─📂 static //静态目录 │ ├─📂 cli //快捷命令 │ ├─📂 tests //测试用例(暂未使用) │ │ │ ├─📄 .example.env //项目环境配置示例 │ ├─📄 .env //项目环境配置文件(最优化读取配置) │ ├─📄 asgi.py //项目运行入口 │ ├─📄 requirements.txt //项目依赖文件 │ ├─📄 run_server.sh //项目运行脚本 ``` ## 依赖说明 - uvicorn==0.29.0 异步服务 - fastapi==0.110.0 - pydantic==2.6.4 验证 - python-validator==0.0.8 验证 - pydantic-settings==2.2.1 配置设置 - python-dotenv==1.0.1 读取 env 配置 - python-multipart==0.0.9 表单依赖 - aioredis==2.0.1 异步 redis - aiomysql==0.2.0 异步 mysql - tortoise-orm==0.20.0 数据库ORM - passlib==1.7.4 加密JWT,密码 - passlib[bcrypt]==4.1.1 加密JWT,密码 - python-jose==3.3.0 加密JWT - aiofiles==23.2.1 异步文件操作