项目介绍

        vue-fastapi-admin 是一个基于 FastAPI + Vue3 + Naive UI 的现代化前后端分离开发平台。该项目融合了 RBAC 权限管理、动态路由和 JWT 鉴权,旨在助力中小型应用快速搭建,并可作为学习参考的典范。

应用场景

  • 企业级应用后台管理:为中小企业提供一套高效、安全、易扩展的后台管理系统。
  • 学习参考:作为全栈开发的学习资料,帮助开发者掌握前后端分离、权限管理、动态路由等关键技术。
  • 定制化开发:基于项目基础进行定制化开发,满足特定业务需求。

功能模块

  • 用户管理:实现用户信息的增删改查,以及用户角色的分配。
  • 角色管理:定义不同角色,为角色分配不同的权限。
  • 菜单管理:动态管理后台菜单,根据角色权限展示或隐藏菜单项。
  • API管理:提供API接口的增删改查,以及接口权限的分配。
  • 权限控制:基于RBAC模型实现细粒度的权限控制,包括按钮和接口级别的权限。
  • 工作台:提供个性化的工作台页面,方便用户快速访问常用功能。

功能特点

  • 前后端分离:前端采用Vue3 + Naive UI,后端采用FastAPI,实现前后端完全分离,提高开发效率。
  • 动态路由:后端根据角色权限动态生成路由,前端根据路由渲染菜单,实现灵活的权限控制。
  • JWT鉴权:使用JSON Web Token(JWT)进行身份验证和授权,增强应用的安全性。
  • 细粒度权限控制:不仅实现页面级别的权限控制,还实现了按钮和接口级别的权限控制。
  • 高效性能:基于Python 3.11和FastAPI高性能异步框架,结合Vue3和Vite等前沿技术,提供高效的性能表现。
  • 代码规范:项目内置丰富的规范插件,确保代码质量和一致性,有效提高团队协作效率。

项目技术栈

    • Python 3.11:作为项目的开发语言,提供强大的功能和高效的性能。
    • FastAPI:高性能的异步Web框架,用于构建API接口。
    • JWT:用于身份验证和授权。
    • RBAC:基于角色的访问控制模型,实现细粒度的权限管理。
    • SQLAlchemy:作为ORM框架,用于数据模型的定义和操作。
    • Alembic:用于数据库迁移和管理。
  • Uvicorn:作为ASGI服务器,运行FastAPI应用。

功能演示

目录说明

├── app                   // 应用程序目录
│   ├── api               // API接口目录
│   │   └── v1            // 版本1的API接口
│   │       ├── apis      // API相关接口
│   │       ├── base      // 基础信息接口
│   │       ├── menus     // 菜单相关接口
│   │       ├── roles     // 角色相关接口
│   │       └── users     // 用户相关接口
│   ├── controllers       // 控制器目录
│   ├── core              // 核心功能模块
│   ├── log               // 日志目录
│   ├── models            // 数据模型目录
│   ├── schemas           // 数据模式/结构定义
│   ├── settings          // 配置设置目录
│   └── utils             // 工具类目录
├── deploy                // 部署相关目录
│   └── sample-picture    // 示例图片目录
└── web                   // 前端网页目录
    ├── build             // 构建脚本和配置目录
    │   ├── config        // 构建配置
    │   ├── plugin        // 构建插件
    │   └── script        // 构建脚本
    ├── public            // 公共资源目录
    │   └── resource      // 公共资源文件
    ├── settings          // 前端项目配置
    └── src               // 源代码目录
        ├── api           // API接口定义
        ├── assets        // 静态资源目录
        │   ├── images    // 图片资源
        │   ├── js        // JavaScript文件
        │   └── svg       // SVG矢量图文件
        ├── components    // 组件目录
        │   ├── common    // 通用组件
        │   ├── icon      // 图标组件
        │   ├── page      // 页面组件
        │   ├── query-bar // 查询栏组件
        │   └── table     // 表格组件
        ├── composables   // 可组合式功能块
        ├── directives    // 指令目录
        ├── layout        // 布局目录
        │   └── components // 布局组件
        ├── router        // 路由目录
        │   ├── guard     // 路由守卫
        │   └── routes    // 路由定义
        ├── store         // 状态管理(pinia)
        │   └── modules   // 状态模块
        ├── styles        // 样式文件目录
        ├── utils         // 工具类目录
        │   ├── auth      // 认证相关工具
        │   ├── common    // 通用工具
        │   ├── http      // 封装axios
        │   └── storage   // 封装localStorage和sessionStorage
        └── views         // 视图/页面目录
            ├── error-page // 错误页面
            ├── login      // 登录页面
            ├── profile    // 个人资料页面
            ├── system     // 系统管理页面
            └── workbench  // 工作台页面
版权声明:
1、本网站名称:帝企吧
2、本站永久网址:https://www.diqiba.com
3、本网站的文章部分内容可能来源于网络及作者投稿,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报。
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
7、本站所有资源来源于互联网,仅用于学习及参考使用,切勿用于商业用途,如产生法律纠纷本站概不负责! 8、资源除标明原创外均来自网络转载,版权归原作者所有,若侵犯到您权益请联系我们删除,我们将及时处理! 9、若您需使用非免费的软件或服务,请购买正版授权并合法使用!