当前位置: 首页 > 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.gsyq.cn/news/1566952.html

相关文章:

  • 多阶段随机优化新突破:MLMC方法如何高效计算条件期望
  • 2026 年 6 月重磅更新!百达翡丽中国区官方维修中心全新地址与服务热线发布 - 百达翡丽中国服务中心
  • 2026年6月最新芝柏中国官方售后电话网点服务热线地址客服 - 亨得利官方服务中心
  • 2026年最新实测:哪种图片清晰化方案效果最好 - 软件工具教程方法
  • 2026年百达翡丽售后服务网络全面更新布局优化,全国超60家门店精准地址与咨询热线汇总 - 百达翡丽中国服务中心
  • 2026年 抚顺漏水检测 6大精准方案不踩坑│抚顺大禹测漏查漏水检测,家庭厨房卫生间漏水了/自来水管/供暖/消防管道漏水检测全覆盖 - 资讯速览
  • 实测6款基础代谢计算器小程序,哪款最准? - 软件工具教程方法
  • 只用一个工具,轻松提取短视频并保留原图清晰度 - 工具软件使用方法推荐
  • 快递怎么寄最便宜?教你5折寄全国的方法 - 快递物流资讯
  • 从相册到mp4,手机视频转换原来这么简单 - 软件工具教程方法
  • 朋友圈九宫格拼图怎么做,这些工具能一键搞定 - 软件工具教程方法
  • MC68HC908AT32定时器与ADC实战:从寄存器配置到低功耗数据采集系统
  • 深圳星级酒店民宿商旅客房隔音怎么做?|静华轩隔音窗|隔绝过道人声、外机噪音、临街车流、客房隔墙传声,商旅项目批量隔声定制 - 维小达科技
  • 枣恒一体化泵站厂家推荐 :一体式预制雨水泵站安装全流程教程 从基坑开挖到调试验收标准化操作指南 - 泵站19832680777
  • 2027澳洲留学中介推荐前十名,QS澳八大集体上升后真实案例看口碑 - 资讯速览
  • 2026上海奢侈品首饰回收攻略:麒麟首饰报价与交易避坑 - 奢侈品交易观察员
  • mp4转换成mp3,用手机自带工具就能做到 - 软件工具教程方法
  • 2026成都二手房装修公司线下实地测评10家,老房全屋改造避坑与防潮工艺详解 - 推荐官
  • 2026年6月目前靠谱的氢氧化钠回收公司怎么选择,氢氧化钠回收厂家,氢氧化钠回收,快速处理提高效率 - 品牌推荐师
  • 重庆天寿建筑工程有限公司:乡村别墅/自建房/商场改造等土建现浇服务优选 - 品牌推荐官
  • 2026 年 6 月百达翡丽官方售后门店资质实地查验报告 覆盖全国 60 + 正规服务点 - 百达翡丽中国服务中心
  • 从入门到实用:推荐 5 款免费且干净的压缩照片工具 - 软件工具教程方法
  • 图片合成一张图的 4 种方法,手机电脑都能用 - 软件工具教程方法
  • 2026年6月最新美度中国官方售后电话热线客服地址服务网点 - 亨得利官方服务中心
  • 徐州博杰企业管理咨询:专业认证服务,助力企业高效获取节能产品认证证书 - 品牌推荐官
  • 基于Processor Expert的Kinetis K60 I2C/SPI通信接口配置与实战指南
  • 终极指南:如何用pan-baidu-download轻松突破百度网盘下载限速
  • 2026 年 6 月百达翡丽官方服务中心实地走访核验报告:全国 60 余家门店地址全面更新 - 百达翡丽中国服务中心
  • 2026实测日常寄快递怎么省钱?这几个技巧轻松省下一半运费 - 生活情报姬
  • i.MX 93高速接口时序设计实战:从HS200到RGMII的硬件设计指南