mirror of
https://github.com/fastapiadmin/FastapiAdmin.git
synced 2026-09-21 04:46:26 +00:00
- 删除旧的Dockerfile.frontend和Dockerfile.backend,合并为单一的Dockerfile - 更新docker-compose.yaml以使用新的Dockerfile - 移除部署指南中的本地部署部分,添加docker部署说明 - 更新前端.env.production中的API地址 - 优化nginx配置以解决页面刷新404问题
1700 lines
42 KiB
HTML
1700 lines
42 KiB
HTML
|
||
<!doctype html>
|
||
<html lang="zh" class="no-js">
|
||
<head>
|
||
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
|
||
<meta name="description" content="这里是网站描述">
|
||
|
||
|
||
<meta name="author" content="948080782x@qq.com">
|
||
|
||
|
||
<link rel="canonical" href="http://127.0.0.1:8888/index.html">
|
||
|
||
|
||
|
||
<link rel="next" href="doc/backend.html">
|
||
|
||
|
||
<link rel="icon" href="assets/images/favicon.png">
|
||
<meta name="generator" content="mkdocs-1.6.1, mkdocs-material-9.6.7">
|
||
|
||
|
||
|
||
<title>Fastapi_Vue_Admin在线文档</title>
|
||
|
||
|
||
|
||
<link rel="stylesheet" href="assets/stylesheets/main.8608ea7d.min.css">
|
||
|
||
|
||
<link rel="stylesheet" href="assets/stylesheets/palette.06af60db.min.css">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,300i,400,400i,700,700i%7CRoboto+Mono:400,400i,700,700i&display=fallback">
|
||
<style>:root{--md-text-font:"Roboto";--md-code-font:"Roboto Mono"}</style>
|
||
|
||
|
||
|
||
<script>__md_scope=new URL(".",location),__md_hash=e=>[...e].reduce(((e,_)=>(e<<5)-e+_.charCodeAt(0)),0),__md_get=(e,_=localStorage,t=__md_scope)=>JSON.parse(_.getItem(t.pathname+"."+e)),__md_set=(e,_,t=localStorage,a=__md_scope)=>{try{t.setItem(a.pathname+"."+e,JSON.stringify(_))}catch(e){}}</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</head>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<body dir="ltr" data-md-color-scheme="default" data-md-color-primary="indigo" data-md-color-accent="indigo">
|
||
|
||
|
||
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
|
||
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
|
||
<label class="md-overlay" for="__drawer"></label>
|
||
<div data-md-component="skip">
|
||
|
||
|
||
<a href="#_1" class="md-skip">
|
||
跳转至
|
||
</a>
|
||
|
||
</div>
|
||
<div data-md-component="announce">
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<header class="md-header md-header--shadow md-header--lifted" data-md-component="header">
|
||
<nav class="md-header__inner md-grid" aria-label="页眉">
|
||
<a href="index.html" title="Fastapi_Vue_Admin在线文档" class="md-header__button md-logo" aria-label="Fastapi_Vue_Admin在线文档" data-md-component="logo">
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||
|
||
</a>
|
||
<label class="md-header__button md-icon" for="__drawer">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3zm0 5h18v2H3zm0 5h18v2H3z"/></svg>
|
||
</label>
|
||
<div class="md-header__title" data-md-component="header-title">
|
||
<div class="md-header__ellipsis">
|
||
<div class="md-header__topic">
|
||
<span class="md-ellipsis">
|
||
Fastapi_Vue_Admin在线文档
|
||
</span>
|
||
</div>
|
||
<div class="md-header__topic" data-md-component="header-topic">
|
||
<span class="md-ellipsis">
|
||
|
||
项目概述
|
||
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<label class="md-header__button md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||
</label>
|
||
<div class="md-search" data-md-component="search" role="dialog">
|
||
<label class="md-search__overlay" for="__search"></label>
|
||
<div class="md-search__inner" role="search">
|
||
<form class="md-search__form" name="search">
|
||
<input type="text" class="md-search__input" name="query" aria-label="搜索" placeholder="搜索" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" required>
|
||
<label class="md-search__icon md-icon" for="__search">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.52 6.52 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5"/></svg>
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11z"/></svg>
|
||
</label>
|
||
<nav class="md-search__options" aria-label="查找">
|
||
|
||
<button type="reset" class="md-search__icon md-icon" title="清空当前内容" aria-label="清空当前内容" tabindex="-1">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>
|
||
</button>
|
||
</nav>
|
||
|
||
<div class="md-search__suggest" data-md-component="search-suggest"></div>
|
||
|
||
</form>
|
||
<div class="md-search__output">
|
||
<div class="md-search__scrollwrap" tabindex="0" data-md-scrollfix>
|
||
<div class="md-search-result" data-md-component="search-result">
|
||
<div class="md-search-result__meta">
|
||
正在初始化搜索引擎
|
||
</div>
|
||
<ol class="md-search-result__list" role="presentation"></ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="md-header__source">
|
||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin.git" title="前往仓库" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
fastapi_vue_admin
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
</nav>
|
||
|
||
|
||
|
||
<nav class="md-tabs" aria-label="标签" data-md-component="tabs">
|
||
<div class="md-grid">
|
||
<ul class="md-tabs__list">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item md-tabs__item--active">
|
||
<a href="index.html" class="md-tabs__link">
|
||
|
||
|
||
|
||
|
||
项目概述
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="doc/backend.html" class="md-tabs__link">
|
||
|
||
|
||
开发指南
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-tabs__item">
|
||
<a href="doc/mkdocs.html" class="md-tabs__link">
|
||
|
||
|
||
文档指南
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</div>
|
||
</nav>
|
||
|
||
|
||
</header>
|
||
|
||
<div class="md-container" data-md-component="container">
|
||
|
||
|
||
|
||
|
||
<main class="md-main" data-md-component="main">
|
||
<div class="md-main__inner md-grid">
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--primary md-nav--lifted" aria-label="导航栏" data-md-level="0">
|
||
<label class="md-nav__title" for="__drawer">
|
||
<a href="index.html" title="Fastapi_Vue_Admin在线文档" class="md-nav__button md-logo" aria-label="Fastapi_Vue_Admin在线文档" data-md-component="logo">
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 8a3 3 0 0 0 3-3 3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3m0 3.54C9.64 9.35 6.5 8 3 8v11c3.5 0 6.64 1.35 9 3.54 2.36-2.19 5.5-3.54 9-3.54V8c-3.5 0-6.64 1.35-9 3.54"/></svg>
|
||
|
||
</a>
|
||
Fastapi_Vue_Admin在线文档
|
||
</label>
|
||
|
||
<div class="md-nav__source">
|
||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin.git" title="前往仓库" class="md-source" data-md-component="source">
|
||
<div class="md-source__icon md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><!--! Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2024 Fonticons, Inc.--><path d="M439.55 236.05 244 40.45a28.87 28.87 0 0 0-40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.22 199v121.85c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1-48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.57 101 8.45 235.14a28.86 28.86 0 0 0 0 40.81l195.61 195.6a28.86 28.86 0 0 0 40.8 0l194.69-194.69a28.86 28.86 0 0 0 0-40.81"/></svg>
|
||
</div>
|
||
<div class="md-source__repository">
|
||
fastapi_vue_admin
|
||
</div>
|
||
</a>
|
||
</div>
|
||
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--active">
|
||
|
||
<input class="md-nav__toggle md-toggle" type="checkbox" id="__toc">
|
||
|
||
|
||
|
||
<label class="md-nav__link md-nav__link--active" for="__toc">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
项目概述
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<a href="index.html" class="md-nav__link md-nav__link--active">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
项目概述
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
目录
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
📚 项目介绍
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🍻 项目特点
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
📌 内置模块
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🍪 账号信息
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
👷 安装和使用
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="👷 安装和使用">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
版本说明
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
获取代码
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
后端
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
前端
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
访问项目
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#docker" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
docker 部署
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🔧 模块展示
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="🔧 模块展示">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
登陆
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
仪表盘
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
菜单管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
部门管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
岗位管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
角色管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
用户管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
日志管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
配置管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
在线用户管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
服务器监控
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
缓存监控
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
任务管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
字典管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
接口管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
文档管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
个人信息
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
在线文档
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app登录
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app首页
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app工作台
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app个人中心
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app个人主页
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
✨ 特别鸣谢
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🎨 微信群
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="🎨 微信群">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
群二维码
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_2" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_2" id="__nav_2_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
开发指南
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_2_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_2">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
开发指南
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="doc/backend.html" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
后端开发
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="doc/frontend.html" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
前端开发
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item md-nav__item--nested">
|
||
|
||
|
||
|
||
<input class="md-nav__toggle md-toggle " type="checkbox" id="__nav_3" >
|
||
|
||
|
||
<label class="md-nav__link" for="__nav_3" id="__nav_3_label" tabindex="0">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
文档指南
|
||
|
||
</span>
|
||
|
||
|
||
<span class="md-nav__icon md-icon"></span>
|
||
</label>
|
||
|
||
<nav class="md-nav" data-md-level="1" aria-labelledby="__nav_3_label" aria-expanded="false">
|
||
<label class="md-nav__title" for="__nav_3">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
文档指南
|
||
</label>
|
||
<ul class="md-nav__list" data-md-scrollfix>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<li class="md-nav__item">
|
||
<a href="doc/mkdocs.html" class="md-nav__link">
|
||
|
||
|
||
<span class="md-ellipsis">
|
||
文档开发
|
||
|
||
</span>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
|
||
<div class="md-sidebar__scrollwrap">
|
||
<div class="md-sidebar__inner">
|
||
|
||
|
||
<nav class="md-nav md-nav--secondary" aria-label="目录">
|
||
|
||
|
||
|
||
|
||
<label class="md-nav__title" for="__toc">
|
||
<span class="md-nav__icon md-icon"></span>
|
||
目录
|
||
</label>
|
||
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
📚 项目介绍
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🍻 项目特点
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
📌 内置模块
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🍪 账号信息
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_5" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
👷 安装和使用
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="👷 安装和使用">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_6" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
版本说明
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_7" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
获取代码
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_8" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
后端
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_9" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
前端
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_10" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
访问项目
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#docker" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
docker 部署
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_11" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🔧 模块展示
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="🔧 模块展示">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_12" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
登陆
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_13" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
仪表盘
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_14" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
菜单管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_15" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
部门管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_16" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
岗位管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_17" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
角色管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_18" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
用户管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_19" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
日志管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_20" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
配置管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_21" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
在线用户管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_22" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
服务器监控
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_23" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
缓存监控
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_24" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
任务管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_25" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
字典管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_26" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
接口管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_27" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
文档管理
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_28" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
个人信息
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_29" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
在线文档
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app登录
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_1" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app首页
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_2" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app工作台
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_3" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app个人中心
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#app_4" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
app个人主页
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_30" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
✨ 特别鸣谢
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_31" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
🎨 微信群
|
||
</span>
|
||
</a>
|
||
|
||
<nav class="md-nav" aria-label="🎨 微信群">
|
||
<ul class="md-nav__list">
|
||
|
||
<li class="md-nav__item">
|
||
<a href="#_32" class="md-nav__link">
|
||
<span class="md-ellipsis">
|
||
群二维码
|
||
</span>
|
||
</a>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="md-content" data-md-component="content">
|
||
<article class="md-content__inner md-typeset">
|
||
|
||
|
||
|
||
|
||
|
||
<div align="center">
|
||
<p align="center">
|
||
<img src="./resources/images/logo.png" height="150" alt="logo"/>
|
||
</p>
|
||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">Fastapi-Vue3-Admin v1.0.0</h1>
|
||
<h4 align="center">基于Fastapi-Vue-Admin前后端分离的Web+小程序+H5应用快速开发框架</h4>
|
||
<p align="center">
|
||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin.git">
|
||
<img src="https://gitee.com/tao__tao/fastapi_vue3_admin/badge/star.svg?theme=dark">
|
||
</a>
|
||
<a href="https://github.com/1014TaoTao/fastapi_vue3_admin.git">
|
||
<img src="https://img.shields.io/github/stars/1014TaoTao/fastapi_vue3_admin?style=social">
|
||
</a>
|
||
<a href="https://gitee.com/tao__tao/fastapi_vue3_admin/blob/master/LICENSE">
|
||
<img src="https://img.shields.io/badge/License-MIT-orange">
|
||
</a>
|
||
<img src="https://img.shields.io/badge/Python-≥3.10-blue">
|
||
<img src="https://img.shields.io/badge/NodeJS-≥20.0-blue">
|
||
<img src="https://img.shields.io/badge/MySQL-≥8.0-blue">
|
||
<img src="https://img.shields.io/badge/Redis-≥7.0-blue">
|
||
</p>
|
||
</div>
|
||
|
||
<h2 id="_1">📚 项目介绍</h2>
|
||
<p><strong>Fastapi-Vue3-Admin</strong> 是一套完全开源的现代化快速开发平台,旨在帮助开发者高效搭建高质量的中后台系统。项目结合了高性能后端框架 FastAPI 和强大的 ORM 库 SQLAlchemy,以及前端技术栈 Vue3、Vite6、Ant Design Vue 和移动端开发框架 UniApp 及其组件库 uView-plus,为开发者提供了开箱即用的解决方案。项目目录结构如下:</p>
|
||
<pre><code class="language-sh">my_demo_project/fastapi_project
|
||
├─ backend # 后端工程
|
||
├─ frontend # 前端工程
|
||
├─ devops # 部署工程
|
||
├─ mkdocs # 文档工程
|
||
|─ README.en.md # 英文文档
|
||
└─ README.md # 中文文档
|
||
</code></pre>
|
||
<ul>
|
||
<li><strong>后端</strong>:</li>
|
||
<li><strong>FastAPI</strong>:现代、高性能的异步框架</li>
|
||
<li><strong>Swagger</strong>:自动生成交互式 API 文档</li>
|
||
<li><strong>Pydantic</strong>:强制类型约束</li>
|
||
<li>
|
||
<p><strong>SQLAlchemy 2.0</strong>:强大的 ORM 库</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>前端</strong>:</p>
|
||
</li>
|
||
<li><strong>Vue3</strong>:现代前端框架</li>
|
||
<li><strong>Ant Design Vue</strong>:企业级 UI 组件库</li>
|
||
<li><strong>TypeScript</strong>:静态类型检查</li>
|
||
<li>
|
||
<p><strong>Vite</strong>:快速的构建工具</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>权限认证</strong>:使用哈希密码和 JWT Bearer 令牌的 OAuth2</p>
|
||
</li>
|
||
<li><strong>权限架构</strong>:基于 RBAC 设计,支持动态权限菜单、按钮级别权限控制、数据级别权限控制</li>
|
||
<li><strong>开箱即用</strong>:适合新项目启动模板,也可用于学习参考</li>
|
||
</ul>
|
||
<p>如果觉得项目不错,欢迎 Star 支持!</p>
|
||
<h2 id="_2">🍻 项目特点</h2>
|
||
<ul>
|
||
<li>模块化、松耦合</li>
|
||
<li>模块丰富、开箱即用</li>
|
||
<li>简洁易用、快速接入</li>
|
||
<li>文档详尽、易于维护</li>
|
||
<li>自顶向下、体系化设计</li>
|
||
<li>统一框架、统一组件、降低选择成本</li>
|
||
<li>开发规范、设计模式、代码分层模型</li>
|
||
<li>强大便捷的开发工具链</li>
|
||
<li>完善的本地中文化支持</li>
|
||
<li>设计为团队及企业使用</li>
|
||
</ul>
|
||
<h2 id="_3">📌 内置模块</h2>
|
||
<ul>
|
||
<li>
|
||
<p><strong>仪表盘</strong>:仪表盘展示,常用功能入口。</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>系统管理</strong></p>
|
||
</li>
|
||
<li><strong>菜单管理</strong>:配置系统菜单,操作权限,按钮权限标识等。</li>
|
||
<li><strong>部门管理</strong>:配置系统组织机构,树结构展现支持数据权限。</li>
|
||
<li><strong>岗位管理</strong>:主要管理用户担任岗位。</li>
|
||
<li><strong>角色管理</strong>:角色菜单管理与权限分配、设置角色所拥有的菜单权限。</li>
|
||
<li><strong>用户管理</strong>:用于维护管理系统的用户,常规信息的维护与账号设置。</li>
|
||
<li><strong>日志管理</strong>:对系统中常用的较为固定的数据进行统一维护。</li>
|
||
<li><strong>配置管理</strong>:主要是系统配置信息,如:系统名称、系统版本、系统描述等。</li>
|
||
<li><strong>公告管理</strong>:系统通知公告信息发布维护。</li>
|
||
<li><strong>字典管理</strong>:对系统中常用的较为固定的数据进行统一维护。</li>
|
||
<li>
|
||
<p><strong>任务管理</strong>:任务调度,支持定时任务,支持任务日志查看。</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>监控管理</strong></p>
|
||
</li>
|
||
<li><strong>在线用户</strong>:查看当前系统中在线的用户。</li>
|
||
<li><strong>服务器监控</strong>:查看系统运行状态,包括内存、CPU、磁盘等。</li>
|
||
<li>
|
||
<p><strong>缓存监控</strong>:查看系统缓存信息,如:缓存命中率、缓存键值等。</p>
|
||
</li>
|
||
<li>
|
||
<p><strong>公共管理</strong></p>
|
||
</li>
|
||
<li><strong>接口管理</strong>:系统接口维护,如:接口地址、请求方式等。</li>
|
||
<li><strong>文档管理</strong>:系统接口文档维护,支持在线接口调用。</li>
|
||
</ul>
|
||
<h2 id="_4">🍪 账号信息</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th style="text-align: left;">账户类型</th>
|
||
<th style="text-align: left;">账号</th>
|
||
<th style="text-align: left;">密码</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td style="text-align: left;"><strong>管理员账户</strong></td>
|
||
<td style="text-align: left;">admin</td>
|
||
<td style="text-align: left;">123456</td>
|
||
</tr>
|
||
<tr>
|
||
<td style="text-align: left;"><strong>演示账户</strong></td>
|
||
<td style="text-align: left;">demo</td>
|
||
<td style="text-align: left;">123456</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h2 id="_5">👷 安装和使用</h2>
|
||
<h3 id="_6">版本说明</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>类型</th>
|
||
<th>技术栈</th>
|
||
<th>版本</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>后端</td>
|
||
<td>Python</td>
|
||
<td>3.10</td>
|
||
</tr>
|
||
<tr>
|
||
<td>后端</td>
|
||
<td>FastAPI</td>
|
||
<td>0.109</td>
|
||
</tr>
|
||
<tr>
|
||
<td>前端</td>
|
||
<td>Node.js</td>
|
||
<td>>= 20.0(推荐使用最新版)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>前端</td>
|
||
<td>npm</td>
|
||
<td>16.14</td>
|
||
</tr>
|
||
<tr>
|
||
<td>前端</td>
|
||
<td>Vue3</td>
|
||
<td>3.3</td>
|
||
</tr>
|
||
<tr>
|
||
<td>数据库</td>
|
||
<td>MySQL</td>
|
||
<td>8.0 (推荐使用最新版)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>数据库</td>
|
||
<td>PostgreSQL</td>
|
||
<td>14(其他版本均未测试)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>数据库</td>
|
||
<td>MongoDB</td>
|
||
<td>8.0(推荐使用最新版)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>中间件</td>
|
||
<td>Redis</td>
|
||
<td>7.0 (推荐使用最新版)</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="_7">获取代码</h3>
|
||
<pre><code class="language-sh">git clone https://gitee.com/tao__tao/fastapi_vue3_admin.git
|
||
</code></pre>
|
||
<h3 id="_8">后端</h3>
|
||
<ol>
|
||
<li>安装依赖</li>
|
||
</ol>
|
||
<p><code>shell
|
||
cd backend
|
||
pip3 install -r requirements.txt</code></p>
|
||
<ol>
|
||
<li>
|
||
<p>修改项目数据库配置信息
|
||
在<code>app/config/.env.dev(.env.test、.env.prod)</code>文件中的<code>DB_DRIVER</code>数据库驱动类型,以及对应的数据库的配置信息</p>
|
||
</li>
|
||
<li>
|
||
<p>创建名为<code>fastapi_vue_admin</code>的数据库</p>
|
||
</li>
|
||
<li>
|
||
<p>初始化数据库数据</p>
|
||
</li>
|
||
</ol>
|
||
<p><code>shell
|
||
# 进入后端根目录 backend 下运行
|
||
# 运行命令后会自动生成数据库内的表和数据
|
||
# 如已初始化数据库数据,此命令可不执行
|
||
python3 main.py init</code></p>
|
||
<ol>
|
||
<li>启动</li>
|
||
</ol>
|
||
<p>```shell
|
||
# 进入后端根目录 backend 下运行
|
||
python3 main.py run</p>
|
||
<p># 修改了模型后需要:重新生成迁移文件,然后应用迁移
|
||
# 生成迁移
|
||
# python main.py revision "初始化迁移" --env=dev(不加默认为dev)
|
||
# 应用迁移
|
||
# python main.py upgrade --env=dev(不加默认为dev)
|
||
```</p>
|
||
<h3 id="_9">前端</h3>
|
||
<ol>
|
||
<li>安装依赖</li>
|
||
</ol>
|
||
<p><code>shell
|
||
cd frontend
|
||
npm install</code></p>
|
||
<ol>
|
||
<li>运行</li>
|
||
</ol>
|
||
<p><code>shell
|
||
npm run dev</code></p>
|
||
<ol>
|
||
<li>打包</li>
|
||
</ol>
|
||
<p><code>shell
|
||
npm run build</code></p>
|
||
<h3 id="_10">访问项目</h3>
|
||
<ul>
|
||
<li>前端地址:<a href="http://127.0.0.1:5180">http://127.0.0.1:5180</a></li>
|
||
<li>账号:<code>admin</code> 密码:<code>123456</code></li>
|
||
<li>接口地址:<a href="http://127.0.0.1:8000/api/v1/docs">http://127.0.0.1:8000/api/v1/docs</a></li>
|
||
</ul>
|
||
<h3 id="docker">docker 部署</h3>
|
||
<ul>
|
||
<li>cd fastapi_vue3_amdin/frontend</li>
|
||
<li>npm run build (保证dist前端打包内容存在,否则运行会报错)</li>
|
||
<li>cd fastapi_vue3_amdin</li>
|
||
<li>docker compose up -d</li>
|
||
<li>注意事项:</li>
|
||
<li>前端.env.production 中 VITE_API_BASE_URL需要修改为公网地址</li>
|
||
<li>后端.env.prod 中 MYSQL_HOST、REDIS_HOST需要改为私网地址</li>
|
||
<li>遇到问题:</li>
|
||
<li>后端启动报错:一般是由于初始化脚本没有执行,脚本目录:backend/sql/mysql_xxx.sql</li>
|
||
<li>还有可能是因为mysql、redis中间件没有启动,需要手动启动</li>
|
||
<li>部署顺序:</li>
|
||
<li>
|
||
<ol>
|
||
<li>启动mysql、redis中间件</li>
|
||
</ol>
|
||
</li>
|
||
<li>
|
||
<ol>
|
||
<li>执行初始化脚本</li>
|
||
</ol>
|
||
</li>
|
||
<li>
|
||
<ol>
|
||
<li>启动后端服务</li>
|
||
</ol>
|
||
</li>
|
||
<li>
|
||
<ol>
|
||
<li>启动前端服务</li>
|
||
</ol>
|
||
</li>
|
||
<li>访问地址:公网地址,80端口;登录admin/123456</li>
|
||
</ul>
|
||
<h2 id="_11">🔧 模块展示</h2>
|
||
<h3 id="_12">登陆</h3>
|
||
<p><img alt="登陆" src="resources/images/login.png" /></p>
|
||
<h3 id="_13">仪表盘</h3>
|
||
<p><img alt="仪表盘" src="resources/images/dashboard.png" /></p>
|
||
<h3 id="_14">菜单管理</h3>
|
||
<p><img alt="菜单管理" src="resources/images/menu.png" /></p>
|
||
<h3 id="_15">部门管理</h3>
|
||
<p><img alt="部门管理" src="resources/images/dept.png" /></p>
|
||
<h3 id="_16">岗位管理</h3>
|
||
<p><img alt="岗位管理" src="resources/images/position.png" /></p>
|
||
<h3 id="_17">角色管理</h3>
|
||
<p><img alt="角色管理" src="resources/images/role.png" /></p>
|
||
<h3 id="_18">用户管理</h3>
|
||
<p><img alt="用户管理" src="resources/images/user.png" /></p>
|
||
<h3 id="_19">日志管理</h3>
|
||
<p><img alt="日志管理" src="resources/images/log.png" /></p>
|
||
<h3 id="_20">配置管理</h3>
|
||
<p><img alt="配置管理" src="resources/images/config.png" /></p>
|
||
<h3 id="_21">在线用户管理</h3>
|
||
<p><img alt="在线用户管理" src="resources/images/online.png" /></p>
|
||
<h3 id="_22">服务器监控</h3>
|
||
<p><img alt="服务器监控" src="resources/images/service.png" /></p>
|
||
<h3 id="_23">缓存监控</h3>
|
||
<p><img alt="缓存监控" src="resources/images/cache.png" /></p>
|
||
<h3 id="_24">任务管理</h3>
|
||
<p><img alt="任务管理" src="resources/images/job.png" /></p>
|
||
<h3 id="_25">字典管理</h3>
|
||
<p><img alt="任务管理" src="resources/images/dict.png" /></p>
|
||
<h3 id="_26">接口管理</h3>
|
||
<p><img alt="接口管理" src="resources/images/docs.png" /></p>
|
||
<h3 id="_27">文档管理</h3>
|
||
<p><img alt="文档管理" src="resources/images/redoc.png" /></p>
|
||
<h3 id="_28">个人信息</h3>
|
||
<p><img alt="个人信息" src="resources/images/info.png" /></p>
|
||
<h3 id="_29">在线文档</h3>
|
||
<p><img alt="在线文档" src="resources/images/help.png" /></p>
|
||
<h3 id="app">app登录</h3>
|
||
<p><img alt="app登录" src="resources/images/app-login.png" /></p>
|
||
<h3 id="app_1">app首页</h3>
|
||
<p><img alt="app首页" src="resources/images/app-home.png" /></p>
|
||
<h3 id="app_2">app工作台</h3>
|
||
<p><img alt="app工作台" src="resources/images/app-work.png" /></p>
|
||
<h3 id="app_3">app个人中心</h3>
|
||
<p><img alt="app个人中心" src="resources/images/app-me.png" /></p>
|
||
<h3 id="app_4">app个人主页</h3>
|
||
<p><img alt="app个人主页" src="resources/images/app-userinfo.png" /></p>
|
||
<h2 id="_30">✨ 特别鸣谢</h2>
|
||
<p>感谢以下项目的贡献和支持,使本项目得以顺利完成:</p>
|
||
<ul>
|
||
<li><a href="https://fastapi.tiangolo.com/">FastAPI 项目</a></li>
|
||
<li><a href="https://v3.cn.vuejs.org/">Vue3 项目</a></li>
|
||
<li><a href="https://gitee.com/ktianc/kinit">KInit 项目</a></li>
|
||
<li><a href="https://gitee.com/senqi666/fastapi-vue-admin">Fastapi-Vue3-Admin 项目</a></li>
|
||
<li><a href="https://gitee.com/mizhexiaoxiao/vue-fastapi-admin">Vue-FastAPI-Admin 项目</a></li>
|
||
<li><a href="https://gitee.com/insistence2022/RuoYi-Vue3-FastAPI">RuoYi-Vue3-FastAPI 项目</a></li>
|
||
<li><a href="https://github.com/agronholm/apscheduler">APScheduler 项目</a></li>
|
||
<li><a href="https://github.com/vitejs/vite">Vite 项目</a></li>
|
||
<li><a href="https://github.com/dcloudio/uni-app">UniApp 项目</a></li>
|
||
<li><a href="https://uiadmin.net/uview-plus">uView-plus 项目</a></li>
|
||
</ul>
|
||
<h2 id="_31">🎨 微信群</h2>
|
||
<p>在下方为群二维码,可以用于技术交流,也可以一起讨论在项目使用过程中遇到的各种问题。真心希望大家一起优化该项目,积极讨论,让我们一起抱团取暖!</p>
|
||
<h3 id="_32">群二维码</h3>
|
||
<table>
|
||
<tr>
|
||
<td><img src="https://gitee.com/tao__tao/fastapi_vue3_admin/raw/master/mkdocs/docs/resources/images/微信.jpg"/></td>
|
||
<td><img src="https://gitee.com/tao__tao/fastapi_vue3_admin/raw/master/mkdocs/docs/resources/images/微信群.jpg"/></td>
|
||
<td><img src="https://gitee.com/tao__tao/fastapi_vue3_admin/raw/master/mkdocs/docs/resources/images/wechatPay.jpg"/></td>
|
||
</tr>
|
||
</table>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</article>
|
||
</div>
|
||
|
||
|
||
<script>var target=document.getElementById(location.hash.slice(1));target&&target.name&&(target.checked=target.name.startsWith("__tabbed_"))</script>
|
||
</div>
|
||
|
||
</main>
|
||
|
||
<footer class="md-footer">
|
||
|
||
|
||
|
||
<nav class="md-footer__inner md-grid" aria-label="页脚" >
|
||
|
||
|
||
|
||
<a href="doc/backend.html" class="md-footer__link md-footer__link--next" aria-label="下一页: 后端开发">
|
||
<div class="md-footer__title">
|
||
<span class="md-footer__direction">
|
||
下一页
|
||
</span>
|
||
<div class="md-ellipsis">
|
||
后端开发
|
||
</div>
|
||
</div>
|
||
<div class="md-footer__button md-icon">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11z"/></svg>
|
||
</div>
|
||
</a>
|
||
|
||
</nav>
|
||
|
||
|
||
<div class="md-footer-meta md-typeset">
|
||
<div class="md-footer-meta__inner md-grid">
|
||
<div class="md-copyright">
|
||
|
||
<div class="md-copyright__highlight">
|
||
Copyright © 2022 <a href="http://127.0.0.1:8888">Powered by xxxxx@qq.com 版权所有</a>
|
||
</div>
|
||
|
||
|
||
Made with
|
||
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
|
||
Material for MkDocs
|
||
</a>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
|
||
</div>
|
||
<div class="md-dialog" data-md-component="dialog">
|
||
<div class="md-dialog__inner md-typeset"></div>
|
||
</div>
|
||
|
||
|
||
<script id="__config" type="application/json">{"base": ".", "features": ["navigation.tabs", "navigation.tabs.sticky", "navigation.instant", "search.highlight", "search.suggest", "navigation.footer"], "search": "assets/javascripts/workers/search.f8cc74c7.min.js", "translations": {"clipboard.copied": "\u5df2\u590d\u5236", "clipboard.copy": "\u590d\u5236", "search.result.more.one": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.more.other": "\u5728\u8be5\u9875\u4e0a\u8fd8\u6709 # \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.none": "\u6ca1\u6709\u627e\u5230\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.one": "\u627e\u5230 1 \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.other": "# \u4e2a\u7b26\u5408\u6761\u4ef6\u7684\u7ed3\u679c", "search.result.placeholder": "\u952e\u5165\u4ee5\u5f00\u59cb\u641c\u7d22", "search.result.term.missing": "\u7f3a\u5c11", "select.version": "\u9009\u62e9\u5f53\u524d\u7248\u672c"}}</script>
|
||
|
||
|
||
<script src="assets/javascripts/bundle.c8b220af.min.js"></script>
|
||
|
||
|
||
</body>
|
||
</html> |