当前位置: 首页 > news >正文

fastapi: 多个子应用:同一个项目中包含接口站和管理后台站

一,什么是子应用挂载?

子应用挂载(Sub-Applications)
这是 FastAPI 官方支持的一种模式。
它将 API 和 Admin 当作两个完全独立的 FastAPI 实例开发,最后通过 app.mount() 组合在一起。
它的优势
  • 路由与文档完全隔离:API 和 Admin 有各自独立的 /docs(Swagger 文档页面)。
  • 中间件隔离:Admin 站点的 Session 校验或 Cookie 中间件不会污染纯净的 API 站点。
  • 独立运行能力:在开发时,你可以单独启动 API 实例或 Admin 实例。

这种做法确实不够专业,因为接口站和管理后台正常情况下应该分不同项目开发并分开部署,
但常做小项目的朋友都知道:这个做法很多时候是必需的

二,结构

image

三,代码

管理后台:

# app/admin/main.py

# app/admin/main.py
from fastapi import FastAPI
from app.admin.views import users
from app.core.exceptions import register_exception_handlers
from fastapi.staticfiles import StaticFilesfrom app.core.redislink import lifespan# 创建FastAPI应用,并传入 lifespan
admin_app = FastAPI(lifespan=lifespan,title="我的admin项目")# 注册全局异常捕获
register_exception_handlers(admin_app)admin_app.mount("/static", StaticFiles(directory="app/static"), name="static")# 注册路由模块
admin_app.include_router(users.router)

接口站:

# app/api/main.py
from fastapi import FastAPI
from app.api.v1 import tasktest, toke, users, account, products
from app.core.exceptions import register_exception_handlers
from fastapi.staticfiles import StaticFilesfrom app.core.redislink import lifespan# 创建FastAPI应用,并传入 lifespan
api_app = FastAPI(lifespan=lifespan,title="我的API项目")# 注册全局异常捕获
register_exception_handlers(api_app)# 🚀 注册中间件
# app.add_middleware(SignatureMiddleware)# 1. 挂载静态文件目录
api_app.mount("/static", StaticFiles(directory="app/static"), name="static")# 注册路由模块
api_app.include_router(users.router)
api_app.include_router(products.router)
api_app.include_router(account.router)
api_app.include_router(toke.router)
api_app.include_router(tasktest.router)

 

根目录下main.py

from fastapi import FastAPI
from app.api.main import api_app
from app.admin.main import admin_app# 创建一个干净的根应用
app = FastAPI(title="企业级项目总网关", docs_url=None, redoc_url=None)# 挂载子应用
app.mount("/api", api_app)      # 所有 /api/* 路由交由 api_app 处理
app.mount("/admin", admin_app)  # 所有 /admin/* 路由交由 admin_app 处理

四,测试效果 :

访问管理后台:

image

访问接口:

image

 

 
http://www.jsqmd.com/news/1055031/

相关文章:

  • 多阶段随机优化新突破:MLMC方法如何高效计算条件期望
  • 2026 年 6 月重磅更新!百达翡丽中国区官方维修中心全新地址与服务热线发布 - 百达翡丽中国服务中心
  • Fate/Grand Automata (FGA) 终极指南:如何快速上手FGO安卓自动战斗工具
  • 2026 年 6 月百达翡丽全国售后网点深度实地调研报告书 含迁店新开全部信息 - 百达翡丽中国服务中心
  • 2026合肥新能源汽车贴膜怎么选?4家授权门店专项测评 - 互联网科技品牌测评
  • 北京沿街商铺风机专项隔音怎么做?|静华轩隔音窗|隔绝餐饮门店排风、商场楼顶大功率排风、商铺外置设备轰鸣噪音,兼顾店内营业私密性、周边住户降噪防护,商用商铺风机设备批量隔声定制 - 维小达科技
  • 2026泸州本地正规瓷砖空鼓维修服务商盘点|无损免拆砖修复,全域上门售后有保障 - 宅安选房屋修缮
  • 2026年6月最新芝柏中国官方售后电话网点服务热线地址客服 - 亨得利官方服务中心
  • 2026年想找口碑好的义乌无缝内衣厂商?哪家强这里揭晓! - 资讯速览
  • 2026 年 6 月欧米茄全国售后服务网络全面焕新,多城市维修新址正式投入运营 - 欧米茄中国服务中心
  • 2026年最新实测:哪种图片清晰化方案效果最好 - 软件工具教程方法
  • 告别激活烦恼:3分钟让Windows和Office永久保持激活状态
  • MPC8536DS嵌入式系统引导实战:从eSDHC与eSPI启动原理到Linux部署
  • i.MX 6处理器引脚复位状态解析:硬件设计中的关键细节与避坑指南
  • 2026 天梭官方维修门店优化公示 全国 60 余家网点指南 - 亨得利腕表服务中心
  • S12X XGATE协处理器实现SCI中断驱动与环形缓冲区设计
  • 2026年 抚顺漏水检测 6大精准方案不踩坑│抚顺大禹测漏查漏水检测,家庭厨房卫生间漏水了/自来水管/供暖/消防管道漏水检测全覆盖 - 资讯速览
  • 2026年上海家电维修平台推荐:本地用户反馈靠谱的家电维修服务商-修乐家家电维修 - 资讯速览
  • 网页版操作系统:零安装体验Windows 12的完整指南
  • 2026年百达翡丽售后服务网络全面更新布局优化,全国超60家门店精准地址与咨询热线汇总 - 百达翡丽中国服务中心
  • 只用一个工具,轻松提取短视频并保留原图清晰度 - 工具软件使用方法推荐
  • 快递怎么寄最便宜?教你5折寄全国的方法 - 快递物流资讯
  • LRCGet:三步解决海量音乐歌词同步难题的终极方案
  • 基于因果干预的大语言模型去毒技术:从PARATOX评估到CAUSALDETOX实践
  • 实测6款基础代谢计算器小程序,哪款最准? - 软件工具教程方法
  • 嵌入式多核开发实战:AMP、SMP、BMP模式选型与性能优化指南
  • 从相册到mp4,手机视频转换原来这么简单 - 软件工具教程方法
  • fastapi: 参数校验时自定义报错信息(get/post/json/基于basemodel类/基于Annotated参数)
  • 闲置翡翠怎么卖?2026上海正规回收平台实测与价格参考 - 奢侈品交易观察员
  • i.MX6启动配置全解析:从引脚、熔丝到硬件设计的实战指南