跑通最简单的Vue3+Python前后端分离项目

前端 Vue 发请求 → 后端 Python 接收 → 返回数据 → 前端展示。

一、前置环境

前端用:Node.js

后端用:Python 3.8+

1.1 项目结构

在项目里建立两个文件夹:

|------backend # Python后端(提供接口)

|------frontend # vue前端(页面展示)

1.2 确认安装成功

Vue 前端是基于 Node.js/npm 运行的

python 复制代码
python --version 
node --version 
npm --version

二、搭建Python后端

2.1 终端进入backend文件夹

cd backend

2.2 创建虚拟环境

python 复制代码
>>>python -m venv de_env 执行命令,backend 里会多出个 de_env 文件夹。

>>>de_env\Scripts\activate 激活虚拟环境

>>>deactivate 退出虚拟环境

Scripts ------ n. 脚本;符号系统;原稿;手稿

2.3 安装后端依赖

pip install fastapi uvicorn

2.4 写后端代码(唯一main.py文件)

python 复制代码
# 导入FastAPI框架
from fastapi import FastAPI
# 解决跨域(前端访问后端必备)
from fastapi.middleware.cors import CORSMiddleware

# 创建后端应用
app = FastAPI()

# 配置跨域(允许前端访问)
app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

# 【核心】写一个接口:前端访问这个地址,返回一句话
@app.get("/api/hello")
def hello():
    return {"message": "我是Python后端!成功连接Vue前端啦~"}

2.5 启动后端服务

uvicorn main:app --reload

三、搭建Vue前端

3.1 新建终端,创建 Vue 项目

python 复制代码
# 1. 创建Vue项目
npm create vite@latest frontend -- --template vue

这说明 Vue3 + Vite 项目已经成功启动, 接下来,在终端里按 Ctrl + C 停止当前服务,进入后续步骤。

3.2 进入前端文件夹 + 安装依赖

python 复制代码
# 2. 进入前端文件夹
cd frontend 
# 3. 安装依赖 ------(装 Vue 核心,必做)
npm install
# 4. 安装请求工具(前端发请求用)
npm install axios 

3.3 修改 Vue 代码(调用后端接口)

打开 src/App.vue,全选删除,复制下面代码:

python 复制代码
<template>
  <div class="box">
    <h1>Vue + Python 前后端项目</h1>
    <!-- 展示后端返回的数据 -->
    <h2>{{ msg }}</h2>
  </div>
</template>

<script setup>
// 导入请求工具
import axios from 'axios'
import { ref } from 'vue'

// 定义变量,接收后端数据
const msg = ref('正在连接后端...')

// 发送请求,访问Python后端接口
axios.get('http://localhost:8000/api/hello')
  .then(res => {
    // 请求成功,把后端数据赋值给变量
    msg.value = res.data.message
  })
  .catch(err => {
    msg.value = '连接后端失败!'
    console.log(err)
  })
</script>

<style scoped>
.box {
  text-align: center;
  margin-top: 100px;
}
</style>

App.vue = 整个 Vue 项目的是所有页面的起点,浏览器打开你的 Vue 项目,第一个加载、永远显示的就是它!

核心作用:

  1. 容器:承载所有子页面

  2. 公共布局:存放导航、页脚等全局组件

  3. 路由出口:实现页面切换

  4. 全局管理:统一管理配置、状态

App.vue 是 Vue 项目的根入口,是所有页面的容器,全局布局的载体。

3.4 启动前端

python 复制代码
npm run dev

3.5 注意

要保持后端终端运行, 保持前端终端运行, 浏览器打开前端地址:http://localhost:5173

3.6 后续的进入

  1. backend 终端 >> 进入虚拟环境de_env:de_env\Scripts\activate >> uvicorn main:app --reload

  2. frontend 终端 >> npm run dev 启动前端

3.7 后续进阶

现在我们已经完成一个最简单的Vue+Python前后端分离项目,熟记代码编写位置,是后续进阶开发的关键。

1. Vue前端

  1. src/views/ → 写页面(首页、函数绘图页、设置页)

  2. src/components/ → 写公共组件(按钮、输入框、绘图面板)

  3. src/api/ → 写后端请求(调用 Python 接口)

  4. src/router/index.js → 写路由(页面切换)

  5. App.vue → 只放导航 + 路由出口(不写业务)

2. Python后端

现在我们只有 1 个 main.py,后续项目会拆分模块:

  1. backend/routers/ → 写接口(函数计算、数据返回)

  2. backend/main.py → 总入口(启动服务、注册路由)

  3. backend/utils/ → 写工具函数(函数计算逻辑)

相关推荐
卷无止境25 分钟前
mathmodel-figure-templates 以及两个上手案例
后端·python
Moment26 分钟前
写给迷茫的应届生,怎样在 AI 时代争取更多机会
前端·后端·面试
fengci.34 分钟前
CTF2MISC中等部分
开发语言·前端·学习
涛涛ing41 分钟前
那个PR太干净了,干净到我差点直接点了合并
前端
去伪存真43 分钟前
稠密检索负责脑补,稀疏检索负责兜底:拆解 RAG 倒排索引的“查字典”艺术
前端·agent
锋行天下1 小时前
服务器 Python 2.7 装不了 langgraph-cli?用本地生成 Dockerfile 曲线救国
人工智能·后端·python
一条大祥脚1 小时前
深入理解 PyTorch FlexAttention:从 Score Mod 到 Mask Mod 的稀疏加速之道
人工智能·pytorch·python·注意力机制·flex attention·可编程注意力
喵个咪2 小时前
GoWind 拆解:全链 ID 类型体系——int64 定版与前端字符串化契约
前端·后端·go
喵个咪2 小时前
GoWind CMS 拆解:Flutter 设计系统内核——双态 token、四档断点与自适应壳层
前端·flutter·交互设计
2601_967980112 小时前
Python自动化办公:模块、库与样式调整教程
python·excel·自动化办公·openpyxl·样式调整