Vue3与Flask后端Demo

server/2024/9/22 13:01:59/

文章目录

        • 准备工作
        • Flask 后端设置
        • Vue3 前端设置
        • 跨域问题
        • 测试

准备工作
  1. 安装开发环境

    • 安装 Python(推荐 Python 3.8 或更高版本)。
    • 安装 Node.js(推荐 LTS 版本)。
    • 安装 PyCharm(用于 Flask 开发)和 VSCode(用于 Vue3 开发)。
    • 使用 npm 安装 Vue CLI:npm install -g @vue/cli
  2. 创建项目

    • Flask 项目:在 PyCharm 中新建一个 Python 项目,并创建一个 app.py 文件。
    • Vue3 项目:在命令行中运行 vue create vue3-flask-project 创建一个新的 Vue 3 项目。
Flask 后端设置
  1. 安装 Flask 和 Flask-CORS
    在 Flask 项目中,使用 pip 安装 Flask 和 Flask-CORS:

    pip install flask flask-cors
    
  2. 编写 Flask 应用
    app.py 中,设置 Flask 应用并启用 CORS:

    python">from flask import Flask, jsonify
    from flask_cors import CORSapp = Flask(__name__)
    CORS(app, resources={r"/*": {"origins": "*"}}, supports_credentials=True)@app.route('/api/data', methods=['GET'])
    def get_data():return jsonify({'message': 'Hello from Flask!'})@app.route('/api/login', methods=['POST'])
    def login():# 假设接收 JSON 数据data = request.get_json()# 这里可以添加数据库验证等逻辑return jsonify({'status': 'success', 'user': data.get('username')})if __name__ == '__main__':app.run(debug=True)
    
Vue3 前端设置
  1. 安装 Axios
    在 Vue3 项目中,使用 npm 安装 Axios:

    npm install axios
    
  2. 配置 Axios
    在 Vue 组件中引入 Axios 并配置请求:

    <template><div><h1>Vue3 with Flask Demo</h1><button @click="fetchData">Fetch Data</button><button @click="login">Login</button><p v-if="message">{{ message }}</p></div>
    </template><script setup>
    import { ref } from 'vue';
    import axios from 'axios';const message = ref('');function fetchData() {axios.get('http://localhost:5000/api/data').then(response => {message.value = response.data.message;}).catch(error => {console.error('Error fetching data:', error);});
    }function login() {axios.post('http://localhost:5000/api/login', {username: 'testuser',password: 'testpass' // 注意:实际应用中不应明文传输密码}).then(response => {message.value = `Login success: ${response.data.user}`;}).catch(error => {console.error('Error logging in:', error);});
    }
    </script>
    
  3. 运行项目

    • 在 PyCharm 中运行 Flask 应用(通常会自动打开 http://localhost:5000/)。
    • 在 VSCode 的 Vue 项目中,运行 npm run serve,这将启动 Vue 开发服务器(通常位于 http://localhost:8080/)。
跨域问题
  • 在 Flask 中,通过 Flask-CORS 插件已经处理了跨域请求。
  • 如果在 Vue 项目中遇到跨域问题,可以在 vue.config.js 文件中配置代理(如果使用 Vue CLI 3+):
    module.exports = {devServer: {proxy: {'/api': {target: 'http://localhost:5000',changeOrigin: true,pathRewrite: { '^/api': '' }}}}
    };
    
    配置后,Vue 中的请求可以简化为 axios.get('/api/data') 而无需指定完整的 URL。
测试
  • 点击 Vue 页面上的 “Fetch Data” 按钮,查看是否能从 Flask 后端获取数据并显示。
  • 点击 “Login” 按钮,查看是否能成功发送 POST 请求并处理返回的数据。

这样,你就完成了 Vue3 与 Flask 后端的基本配合设置,并能够通过实例看到前后端数据交互的过程。


http://www.ppmy.cn/server/120283.html

相关文章

邮件安全治理

邮件安全治理 1.入站安全防护2.出站安全防护 1.入站安全防护 1、邮箱账号暴力破解 邮箱暴力破解&#xff0c;除了常见的通过POP3、SMTP、IMAP协议进行频繁认证请求外&#xff0c;还有一些是通过访问邮件系统登录页面进行的&#xff0c;比如渗透测试人员非常喜欢的OWA或者EWS接…

高效编程的利器 Jupyter Notebook

目录 前言1. Jupyter Notebook简介1.1 功能特点1.2 使用场景 2. 不同编程工具的对比与效率提升2.1 VS Code&#xff1a;灵活且轻量的代码编辑器2.2 PyCharm&#xff1a;面向专业开发者的集成开发环境2.3 Git&#xff1a;高效协作的版本控制工具2.4 Jupyter Notebook 和 VS Code…

java sdk下载,解决下载了java但是编译不了

直接搜Java得到的网站使用不了的 应该只是个功能包或者版本太低用不了 得去oracle公司搜java这个产品去下载

《仙境传说RO:新启航》游戏攻略,VMOS云手机辅助高效挂机助攻!

在《仙境传说RO&#xff1a;新启航》中&#xff0c;游戏的玩法非常丰富&#xff0c;但对很多玩家而言&#xff0c;想要全方位提升游戏体验并不容易。借助VMOS云手机&#xff0c;可以为玩家提供更为便捷和高效的辅助工具。VMOS云手机特别定制了适用于《仙境传说RO&#xff1a;新…

如何使用 React、TypeScript、TailwindCSS 和 Vite 创建 Chrome 插件

创建一个 Chrome 插件是一个有趣的项目&#xff0c;特别是当结合使用强大的工具如 React、TypeScript、TailwindCSS 和 Vite 时 在这篇文章中&#xff0c;我们将逐步引导完成整个过程&#xff0c;了解如何在 2024 年构建自己的 Chrome 插件。无论是经验丰富的开发者还是刚刚起…

ldd可以显示出程序启动时需要静态加载的动态库的完整列表

ldd可以显示出程序启动时需要静态加载的动态库的完整列表 ldd的英文可以理解为 list dynamic dependencies ldd对动态库的搜索是递归进行的 ldd无法识别出运行时通过调用dlopen()函数动态加载的动态库 ldd在有些时候是不安全的&#xff0c;因为在一些环境中某些版本的ldd可…

MATLAB中isfloat函数用法

目录 语法 说明 示例 确定数值是否为浮点类型 isfloat函数的功能是确定输入是否为浮点数组。 语法 tf isfloat(A) 说明 如果 A 是浮点数组&#xff0c;tf isfloat(A) 返回 true&#xff0c;否则返回 false。浮点类型是 single 和 double。 示例 确定数值是否为浮点类…

C#中DataGridView 的 CellPainting 事件的e.Handled = true

在 Windows Forms 应用程序中&#xff0c;e.Handled true; 这行代码通常出现在事件处理程序中&#xff0c;特别是在处理 DataGridView 的 CellPainting 事件时。这里的 e 是一个事件参数对象&#xff0c;它包含了事件的详细信息和状态。 当你在 CellPainting 事件处理程序中设…