【Flask+VUE】flask+vue开发web网页系统(详细安装使用范例)

【Flask+VUE】flask+vue开发web网页系统(详细安装使用范例)

【Flask_VUE】flask+vue开发web网页系统(详细安装使用范例)


使用 Flask + Vue 开发 Web 网页系统是一种常见的前后端分离架构:Flask 作为后端提供 RESTful API 接口,Vue 作为前端构建单页面应用(SPA)。下面我将为你提供一个 详细的安装与使用范例,包括项目结构、环境搭建、接口通信、跨域处理等关键步骤。

✅ 一、项目结构规划

flask-vue-web-system/ │ ├── backend/ # Flask 后端 │ ├── app.py # 主程序 │ ├── models.py # 数据模型(可选) │ └── requirements.txt # Python依赖 │ └── frontend/ # Vue 前端 ├── public/ ├── src/ │ ├── views/ │ ├── components/ │ ├── services/ # API 请求服务 │ ├── App.vue │ └── main.js ├── package.json └── vue.config.js # 配置代理解决跨域 

✅ 二、后端:Flask 搭建 API 服务

1. 安装 Flask 并创建后端项目

mkdir flask-vue-web-system cd flask-vue-web-system mkdir backend cd backend python -m venv venv source venv/bin/activate # Linux/Mac# 或 venv\Scripts\activate # Windows

安装依赖:

pip install flask flask-cors 

保存依赖:

pip freeze > requirements.txt 

2. 编写 app.py

# backend/app.pyfrom flask import Flask, jsonify, request from flask_cors import CORS # 解决跨域问题 app = Flask(__name__) CORS(app)# 允许前端访问(开发时)# 模拟数据 users =[{"id":1,"name":"Alice","email":"[email protected]"},{"id":2,"name":"Bob","email":"[email protected]"}]# GET /api/users - 获取用户列表@app.route('/api/users', methods=['GET'])defget_users():return jsonify(users)# POST /api/users - 添加新用户@app.route('/api/users', methods=['POST'])defadd_user(): data = request.get_json() new_id =max(u["id"]for u in users)+1if users else1 user ={"id": new_id,"name": data["name"],"email": data["email"]} users.append(user)return jsonify(user),201# 启动入口if __name__ =='__main__': app.run(host='0.0.0.0', port=5000, debug=True)

3. 运行后端服务

cd backend python app.py 

访问 http://localhost:5000/api/users 可看到 JSON 数据。


✅ 三、前端:Vue 搭建用户界面

1. 创建 Vue 项目(需要 Node.js 和 npm)

确保已安装 Node.js(建议 v16+),然后:

cd../frontend npm create vue@latest # 选择默认选项即可(或手动启用 Router、Pinia)cd frontend npminstall

2. 安装 Axios(用于 HTTP 请求)

npminstall axios 

3. 创建 API 服务文件

创建 src/services/api.js

// src/services/api.jsimport axios from'axios'const apiClient = axios.create({baseURL:'http://localhost:5000',// Flask 后端地址headers:{'Content-Type':'application/json'}})exportdefault{getUsers(){return apiClient.get('/api/users')},addUser(user){return apiClient.post('/api/users', user)}}

4. 创建用户列表组件(src/views/UserList.vue

<!-- src/views/UserList.vue --> <template> <div> <h2>用户列表</h2> <ul> <li v-for="user in users" :key="user.id"> {{ user.name }} ({{ user.email }}) </li> </ul> <h3>添加用户</h3> <form @submit.prevent="handleSubmit"> <input v-model="name" placeholder="姓名" required /> <input v-model="email" placeholder="邮箱" type="email" required /> <button type="submit">添加</button> </form> </div> </template> <script> import api from '@/services/api' export default { name: 'UserList', data() { return { users: [], name: '', email: '' } }, async created() { try { const response = await api.getUsers() this.users = response.data } catch (error) { console.error('获取用户失败:', error) } }, methods: { async handleSubmit() { try { const response = await api.addUser({ name: this.name, email: this.email }) this.users.push(response.data) this.name = '' this.email = '' } catch (error) { console.error('添加用户失败:', error) } } } } </script> <style scoped> .user-list { max-width: 600px; margin: 2rem auto; padding: 1rem; } input { display: block; width: 100%; margin: 0.5rem 0; padding: 0.5rem; } button { margin-top: 1rem; padding: 0.5rem 1rem; } </style> 

5. 配置路由(使用 Vue Router)

编辑 src/router/index.js

import{ createRouter, createWebHistory }from'vue-router'import UserList from'../views/UserList.vue'const routes =[{path:'/',component: UserList }]const router =createRouter({history:createWebHistory(), routes })exportdefault router 

src/main.js 中挂载:

import{ createApp }from'vue'import App from'./App.vue'import router from'./router'createApp(App).use(router).mount('#app')

6. 修改 App.vue

<!-- src/App.vue --> <template> <div> <router-view /> </div> </template> <script> export default { name: 'App' } </script> 

7. (可选)配置代理避免跨域(生产中应由 Nginx 处理)

创建 vue.config.js 在项目根目录(frontend/vue.config.js):

// frontend/vue.config.js module.exports ={devServer:{proxy:{'/api':{target:'http://localhost:5000',changeOrigin:true,secure:false}}}}

修改 api.jsbaseURL 为相对路径:

baseURL:'/api'// 而不是 http://localhost:5000

这样开发时请求 /api/users 会被代理到 http://localhost:5000/api/users


✅ 四、运行项目

启动后端(终端 1):

cd backend source venv/bin/activate # 激活虚拟环境 python app.py 

启动前端(终端 2):

cd frontend npm run dev 

打开浏览器访问:http://localhost:5173


✅ 五、部署建议(生产环境)

  1. Flask 提供静态文件(可选方案)将 Vue 打包后的文件放入 Flask 的 static/templates/index.html,或者用 Nginx 托管前端,Flask 单独做 API 服务。
  2. 使用 Gunicorn + Nginx 部署 Flask
  3. 使用 Nginx 同时托管前端和反向代理 API

前端打包

cd frontend npm run build 

生成 dist/ 目录。


✅ 总结说明

  • Flask 负责提供 JSON 接口,处理业务逻辑和数据库。
  • Vue 负责构建交互式前端界面,通过 Axios 调用接口。
  • CORS 或 devServer.proxy 解决开发期跨域问题。
  • 前后端分离 提高开发效率和维护性。

Read more

《Science》观点解读:AI无法创造真正的智能体(AI Agent)

《Science》观点解读:AI无法创造真正的智能体(AI Agent)

无论是想要学习人工智能当做主业营收,还是像我一样作为开发工程师但依然要运用这个颠覆开发的时代宠儿,都有必要了解、学习一下人工智能。         近期发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,入行门槛低,讲解极为丰富。          点击跳转:前言 – 人工智能教程 目录 《Science》观点解读:AI无法创造真正的智能体(AI Agent) 前言 一、大模型的"超能力"从何而来? 1、如何理解大模型的核心运作逻辑 2、大模型的文化技术本质 二、为何说"超级智能体"是个伪命题? 三、结语         作者:watermelo37         ZEEKLOG万粉博主、华为云云享专家、阿里云专家博主、腾讯云、支付宝合作作者,全平台博客昵称watermelo37。         一个假装是giser的coder,做不只专注于业务逻辑的前端工程师,Java、Docker、Python、

零基础学AI大模型之嵌入模型性能优化

零基础学AI大模型之嵌入模型性能优化

大家好,我是工藤学编程 🦉一个正在努力学习的小博主,期待你的关注实战代码系列最新文章😉C++实现图书管理系统(Qt C++ GUI界面版)SpringBoot实战系列🐷【SpringBoot实战系列】SpringBoot3.X 整合 MinIO 存储原生方案分库分表分库分表之实战-sharding-JDBC分库分表执行流程原理剖析消息队列深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)AI大模型零基础学AI大模型之LangChain Embedding框架全解析 前情摘要 前情摘要 1、零基础学AI大模型之读懂AI大模型 2、零基础学AI大模型之从0到1调用大模型API 3、零基础学AI大模型之SpringAI 4、零基础学AI大模型之AI大模型常见概念 5、零基础学AI大模型之大模型私有化部署全指南 6、零基础学AI大模型之AI大模型可视化界面 7、零基础学AI大模型之LangChain 8、零基础学AI大模型之LangChain六大核心模块与大模型IO交互链路 9、零基础学AI大模型之Prompt提示词工程 10、零基础学AI大模型之Lan

软件测试中引入人工智能(AI)

在软件测试中引入人工智能(AI),能够解决传统测试的痛点(如重复劳动多、回归测试成本高、难以覆盖复杂场景、缺陷定位慢等),实现测试的自动化、智能化、高效化。以下是AI在软件测试中的核心应用场景、技术方案、工具及实施步骤,兼顾理论与实操。 一、 AI在软件测试中的核心价值 1. 替代重复手工劳动:自动生成测试用例、执行测试、回归验证,减少人力成本。 2. 覆盖复杂场景:模拟真实用户的随机操作、边界场景、异常流,提升测试覆盖率。 3. 提前发现潜在缺陷:通过数据分析预测高风险模块,精准定位缺陷根因。 4. 自适应动态测试:根据软件版本迭代,自动更新测试用例,适配界面/功能变化。 二、 AI在软件测试中的核心应用场景 1. 测试用例智能生成 传统测试用例需人工编写,耗时且易遗漏场景;AI可基于需求文档、代码、历史测试数据自动生成用例。 * 技术原理: * 自然语言处理(NLP)

用快马ai快速原型一个永久在线crm网站,验证你的产品思路

最近在验证一个CRM产品的市场可行性,需要快速搭建一个能永久在线的基础原型。传统开发流程从环境搭建到功能实现至少需要一周,而通过InsCode(快马)平台的AI辅助,我用不到半天就完成了核心功能验证。以下是具体实践过程: 1. 明确最小可行功能集 原型系统聚焦四个核心模块:客户信息管理(基础CRUD)、销售机会跟踪(状态流转)、数据仪表盘(关键指标可视化)、基础权限控制(管理员/用户视图)。这种设计能覆盖80%的CRM基础使用场景,避免陷入细节开发。 2. AI生成基础框架 在平台输入"React+Node.js的CRM系统,包含客户管理、跟进记录和仪表盘",AI在10秒内生成了包含路由配置、API接口定义和基础组件的脚手架代码。特别惊喜的是自动配置好了MongoDB连接模块,省去了手动安装驱动和写连接池代码的时间。 3. 客户模块快速迭代 * 客户信息表单通过AI生成的React Hook自动绑定数据 * 地址字段智能识别省市区三级联动需求,自动补全地区选择器组件 * 联系方式验证逻辑直接内置了手机号/邮箱的正则校验 4. 销售跟踪状