news 2026/5/7 21:51:22

【亲测】创建一个基于 FastAPI + Casbin 的权限管理系统 demo

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【亲测】创建一个基于 FastAPI + Casbin 的权限管理系统 demo

目录

  • 前言
  • 核心功能
  • 项目结构
  • 快速开始
    • 安装依赖:
    • 配置数据库(修改 config.py 中的数据库连接)
    • 初始化数据
    • 启动服务
    • 访问 API 文档:http://localhost:8000/docs
  • 测试账号
  • 详细代码
    • model.conf
    • init
    • business_type.py
    • department.py
    • order.py
    • role.py
    • role_permission.py
    • user.py
    • user_role.py
    • auth.py
    • business_types.py
    • departments.py
    • orders.py
    • roles.py
    • users.py
    • init
    • business_type.py
    • department.py
    • order.py
    • role.py
    • token.py
  • user.py
    • auth.py
    • permission.py
    • config.py
    • database.py
    • init_data.py
    • main.py
    • requirements.txt
    • test_api.py
  • README.md
      • 2. 配置数据库
      • 3. 创建数据库
      • 4. 初始化数据
      • 5. 启动服务
      • 6. 访问 API 文档
    • 测试账号
    • API 使用示例
      • 1. 用户登录
      • 2. 获取订单列表(需要认证)
      • 3. 创建订单
    • 权限模型说明
      • Casbin 模型配置
      • 权限示例
    • 数据权限规则
      • 订单数据权限
      • 实现方式
    • 模块说明
      • 1. 用户管理模块 (`/api/users`)
      • 2. 角色管理模块 (`/api/roles`)
      • 3. 部门管理模块 (`/api/departments`)
      • 4. 业务类型模块 (`/api/business-types`)
      • 5. 订单管理模块 (`/api/orders`)
    • 开发说明
      • 添加新权限
      • 扩展数据权限
    • 注意事项
  • 快速启动指南
    • 1. 环境准备
      • 安装 Python 依赖
      • 配置数据库
    • 2. 初始化数据
    • 3. 启动服务
    • 4. 测试账号
    • 5. 测试 API
      • 使用测试脚本
      • 手动测试
        • 1. 登录获取 Token
        • 2. 获取订单列表(测试数据权限)
        • 3. 创建订单
    • 6. 功能特性验证
      • 权限控制验证
      • 数据权限验证
    • 7. 常见问题
      • Q: 数据库连接失败
      • Q: Casbin 策略未生效
      • Q: 数据权限不生效
    • 8. 项目结构说明
    • 9. 下一步

前言

结合fastapi,casbin实现一个用户权限+订单管理+数据权限+设计非常详细的demo,包含角色,用户,一级部门,二级部部门,业务类型,查看不同的模块,相同部门用户登录查看不同数据,

核心功能

项目结构

快速开始

安装依赖:

pip install-r requirements.txt

配置数据库(修改 config.py 中的数据库连接)

初始化数据

python init_data
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 13:32:02

如何利用bufferline.nvim的分组功能高效管理缓冲区

如何利用bufferline.nvim的分组功能高效管理缓冲区 【免费下载链接】bufferline.nvim A snazzy bufferline for Neovim 项目地址: https://gitcode.com/gh_mirrors/bu/bufferline.nvim bufferline.nvim 是一款为 Neovim 设计的现代化缓冲区管理插件,它提供了…

作者头像 李华
网站建设 2026/4/27 13:39:45

利用ms-swift监控PID资源占用预防GPU内存泄漏

利用 ms-swift 监控 PID 资源占用预防 GPU 内存泄漏 在大模型训练日益成为 AI 工程核心的今天,GPU 集群的稳定性早已不再只是“能不能跑起来”的问题,而是“能不能长期稳定运行”的挑战。尤其当多个团队共享一套算力资源时,一个微小的显存泄漏…

作者头像 李华
网站建设 2026/5/7 16:15:56

Fort Firewall:为Windows系统打造的专业级开源防护盾

Fort Firewall:为Windows系统打造的专业级开源防护盾 【免费下载链接】fort Fort Firewall for Windows 项目地址: https://gitcode.com/GitHub_Trending/fo/fort 还在为Windows系统网络安全隐患而烦恼吗?每次看到未知程序连接网络都感到不安&…

作者头像 李华
网站建设 2026/5/6 18:45:44

LLM命令行工具:从新手到高手的场景化实战指南

LLM命令行工具:从新手到高手的场景化实战指南 【免费下载链接】llm Access large language models from the command-line 项目地址: https://gitcode.com/gh_mirrors/llm/llm 你是否曾想过,在终端里就能像和朋友聊天一样与AI模型对话&#xff1f…

作者头像 李华
网站建设 2026/5/2 18:55:02

CreamApi终极指南:一键解锁多平台游戏DLC完整教程

CreamApi终极指南:一键解锁多平台游戏DLC完整教程 【免费下载链接】CreamApi 项目地址: https://gitcode.com/gh_mirrors/cr/CreamApi 还在为昂贵的游戏DLC发愁吗?想要免费体验完整游戏内容?CreamApi正是你需要的解决方案&#xff01…

作者头像 李华
网站建设 2026/4/28 23:12:08

定位器错误,排查了挺久的一个报错,记录一下

一开始以为是隐式等待或显示等待的时间不够,就疯狂的加长时间,结果不是等待的时间问题,而是xpath定位的元素错了,页面根本找不到这个元素定位,就错得离谱😭selenium.common.exceptions.TimeoutException: M…

作者头像 李华