FastAPI-amis-admin实战:5分钟搞定一个带权限的后台管理系统(附完整代码)

FastAPI系列教程20:fastapi-amis-admin,即开即用的后台框架(2) 在fastapi-amis-admin AdminSite代表着整个后台应用,它可以包含多个AdminApp,而每一个AdminApp中可以有多个AdminGroup作为页面导航分组,每个AdminGroup可以包含多个PageSchemaAdmin管理页面,这样就构成了整个后台应用基本结构。 阅读详情

FastAPI-amis-admin实战:5分钟构建企业级RBAC后台管理系统

在当今快速迭代的互联网产品开发中,后台管理系统作为支撑业务运营的核心基础设施,其开发效率直接影响着项目的交付速度。传统后台开发往往需要前端、后端工程师紧密协作,耗费大量时间在界面绘制、权限控制和数据对接上。而FastAPI-amis-admin的出现,彻底改变了这一局面——它让开发者能够像搭积木一样快速构建功能完善的后台系统。

1. 环境准备与基础配置

让我们从最简化的环境搭建开始。确保你的Python版本在3.7以上,这是使用FastAPI-amis-admin的基本要求。创建一个新的虚拟环境是个好习惯:

python -m venv admin-env
source admin-env/bin/activate  # Linux/macOS
admin-env\Scripts\activate     # Windows

安装核心依赖包时,建议使用清华镜像源加速下载:

pip install fastapi-amis-admin fastapi-user-auth aiosqlite -i https://pypi.tuna.tsinghua.edu.cn/simple

基础项目结构通常如下所示:

/project-root
│── main.py         # 主入口文件
│── models.py       # 数据模型定义
│── admin/          # 后台模块目录
│   └── routers.py  # 自定义路由
└── static/         # 静态资源

创建一个极简的FastAPI应用只需要15行代码:

from fastapi import FastAPI
from fastapi_amis_admin.admin.settings import Settings
from fastapi_amis_admin.admin.site import AdminSite

app = FastAPI()
site = AdminSite(settings=Settings(
    database_url_async='sqlite+aiosqlite:///admin.db',
    site_title='极速后台管理系统'
))

site.mount_app(app)

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=8000)

启动服务后访问http://localhost:8000/admin/,你会看到一个清爽的登录界面——虽然目前还没有任何功能,但基础骨架已经就位。

2. RBAC权限系统深度集成

权限管理是后台系统的核心痛点。FastAPI-amis-admin通过与fastapi-user-auth的无缝集成,提供了开箱即用的RBAC(基于角色的访问控制)解决方案。让我们升级基础配置:

from fastapi_user_auth.site import AuthAdminSite
from fastapi_user_auth.auth.models import User, Role

# 替换原有的AdminSite
site = AuthAdminSite(settings=Settings(
    database_url_async='sqlite+aiosqlite:///admin.db',
    secret_key='your-secret-key-here'  # 生产环境务必修改
))

创建初始化脚本时,建议添加默认管理员角色:

@app.on_event("startup")
async def startup():
    await site.db.async_run_sync(SQLModel.metadata.create_all)
    auth = site.auth
    # 创建管理员角色和测试用户
    if not await auth.get_user(username="admin"):
        await auth.create_role(role_key="admin", role_name="超级管理员")
        await auth.create_user(
            username="admin",
            password="admin123",
            is_superuser=True
        )

权限控制体现在三个层面:

  1. 菜单权限:控制导航栏可见性
  2. 操作权限:限制按钮/API调用
  3. 数据权限:过滤查询结果

为模型添加权限控制示例:

from fasta
fastapi-amis-admin快速创建一个后台管理系统增加音乐管理功能(3) fastapi_amis_admin 是一个功能强大的框架,旨在帮助开发者在使用 FastAPI 进行 web 开发时,能够快速创建一个高效且易于管理的后台界面。通过结合 FastAPI 和 amis 的优势,fastapi_amis_admin 提供了一种简洁而高效的方式来构建和管理 web 应用程序的后台。主要特性:高性能:基于 FastAPI,保证了高并发和快速响应的能力。高效率:通过 amis 实现快速构建可视化界面,减少开发时间。 阅读详情

相关推荐

FastAPI的admin后台

FastAPI操作数据库的文章,网上有很多。FastAPI因其原生支持异步,且支持Pydantic标准格式校验,广泛受到开发者的青睐。那么如何支持异步数据库?并继续支持Pydantic呢?那么FastAPI能不能像Django那样支持后台呢?可以快捷的对数据库表进行CRUD呢?

wengxh_09的博客 3450

FastAPI-Amis-Admin: 一个拥有高性能,高效率,易拓展的fastapi管理后台框架

项目介绍 FastAPI-Amis-Admin fastapi-amis-admin是一个拥有高性能,高效率,易拓展的fastapi管理后台框架 启发自Django-Admin,并且拥有不逊色于Django-Admin的强大功能. 源码 · 在线演示 · 文档 · 文档打不开? fastapi

Atomi的博客 4428

FastAPI系列教程19:fastapi admin,即开即用的后台框架(1)

fastapi-amis-admin 是一个基于FastAPI web框架以及Amis前端框架即开即用的后台框架,类似于Django-Admin,它可以为FastAPI web应用程序快速生成一个可视化管理后台。

GeekABC 1449

【教程】FastAPI-Amis-Admin快速入门教程,打造功能强大的web管理后台系统

快速开始 安装 pip install fastapi_amis_admin 简单示例 1.创建文件**adminsite.py**: from fastapi_amis_admin.amis_admin.settings import Settings from fastapi_amis_admin.amis_admin.site import AdminSite from fastapi_amis_admin.amis_admin import admin # 创建AdminSite实例 site

Atomi的博客 4849

【JSON2WEB】 12基于Amis-admin的动态导航菜单树

管理信息系统一般注册用户较多,功能页面也很多,不同用户有不同的功能页面的操作权限,根据用户角色功能权限,生成动态的页面导航功能树是我采用的常规操作。

REST2SQL ,JSON2WEB 1939

amis-admin:基于 amis 的后台项目前端模板

amis admin 模板 基于 渲染器,快速搭建自己的管理系统。 快速开始 其实这个项目直接双击 index.html 都能看大部分效果,不过为了更完整体验,请运行下面的命令: # 安装依赖 npm i # 打开服务 npm start

多重共线性问题 -- 岭回归方法

概述 本篇博客分为三大部分,线性模型、多重共线性问题和岭回归。其中,线性模型中介绍了线性模型定义和普通最小二乘法对线性模型的拟合。第二部分,借由1987-2007年的人口、消费和科技对碳排放的影响的数据来说明多重共线性问题(包括如何从定性和定量两个方面判断多重共线性问题)和多重共线性问题对普通最小二乘估计的影响。第三部分,使用岭回归对第二部分中的多重共线性问题进行拟合,并基于R2R^2R2决定系数...

楚江客的记录 1万+

Eplan2022 复制已有的宏文件生成新的原理图宏文件

Eplan2022 新建原理图宏文件

haier123888的博客 1万+

python 抖音采集_python爬取抖音视频的实例详解

import requestsimport jsonimport reimport osfrom pprint import pprint as ppimport queueclass DouYin:header = {'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*...

weixin_35795675的博客 1864

代谢组数据分析(二十一):通过MetaboAnalystR标准化构建sPLSDA预测模型

本文介绍了如何使用R语言中的MetaboAnalystR包和mixOmics包进行代谢组学数据的标准化和sPLSDA分析。MetaboAnalystR包用于数据预处理,包括数据初始化、清洗、补足、过滤和标准化等步骤,以确保数据质量。mixOmics包则用于sPLSDA分析,通过Lasso惩罚进行变量选择,并建立分类模型。文章详细说明了安装和加载相关R包的步骤,并提供了数据导入和预处理的代码示例。最后,强调了数据预处理的重要性,以确保后续分析的准确性和可靠性。

专注生信领域 2426

SLAM 轨迹评估工具——EVO安装、使用介绍

evo是一款用于视觉里程计和SLAM问题的轨迹评估工具. 核心功能是能够绘制相机的轨迹, 或评估轨迹与真值之间的误差. 支持多种数据集的轨迹格式(TUM、KITTI、EuRoC MAV、ROS的bag), 同时支持这些数据格式之间的相互转换,本文轨迹展示以tum数据格式为例。

u010196944的博客 1万+

如何在 R 中执行 Kruskal-Wallis 检验

Kruskal-Wallis 检验用于确定三个或更多独立组的中位数之间是否存在统计学上的显着差异。它被认为是单向方差分析的非参数等效项。本教程介绍了如何在 R 中执行 Kruskal-Wallis 检验。示例:R 中的 Kruskal-Wallis 检验 假设研究人员想知道三种不同的肥料是否会导致不同水平的植物生长。他们随机选择 30 种不同的植物并将它们分成三组,每组 10 株,每组施用不同的肥料。在一个月结束时,他们测量每株植物的高度。使用以下步骤执行 Kruskal-Wallis 检验以确定三个组的中

Mrrunsen的博客 3800

基于唤醒音频的目标说话人语音识别系统设计报告

摘要 本报告设计了一套基于唤醒音频的目标说话人语音识别系统,通过五级流水线架构(唤醒检测→声纹注册→语音分离→目标ASR→拒识决策)解决复杂声学场景下的目标说话人识别问题。系统整合ECAPA-TDNN声纹模型、Conv-TasNet语音分离网络和Whisper ASR引擎,在L20 GPU上实现高效端到端推理,支持-5dB~5dB SNR范围和0~100%重叠率的双人语音场景处理。系统在目标说话人CER、拒识率和推理效率等关键指标上均达到设计目标,为智能语音交互提供了有效的身份感知解决方案。

huanghm88的专栏 73

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

上一篇: 空间多组学分析新范式:SpatialGlue与10x Visium/STARmap数据实战对比
下一篇: 从原理到代码:深入理解OpenCV中的Drago色调映射算法
lambda
博客等级 码龄23年 49粉丝 1303原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值