如何利用Python的Flask框架与Vue.js创建RESTful API服务

简介: 【4月更文挑战第10天】本文介绍了如何使用Flask和Vue.js创建一个前后端分离的RESTful API服务。Flask作为后端框架,负责提供CRUD操作,与SQLite数据库交互;Vue.js作为前端框架,构建用户界面并利用axios库与后端API通信。通过示例代码,展示了Flask设置路由处理用户数据以及Vue组件如何调用API获取和操作数据。此基础结构为构建更复杂的Web应用提供了起点。

在现代Web开发中,前后端分离的架构已经成为一种流行的设计模式。在这种模式中,后端专注于提供高效的RESTful API服务,而前端则负责构建用户界面和交互逻辑。Python的Flask框架以其轻量级和灵活性著称,是构建API服务的绝佳选择。与此同时,Vue.js作为一个渐进式的JavaScript框架,在前端正变得越来越流行。本文将指导你如何使用Flask框架和Vue.js来创建一个功能完善的RESTful API服务。

首先,我们需要安装Flask。在命令行中执行以下命令:

pip install Flask

接下来,我们创建一个简单的Flask应用,它将提供基本的CRUD(创建、读取、更新、删除)操作。在一个名为app.py的文件中,我们可以定义如下路由:

from flask import Flask, request, jsonify
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db'  # 使用SQLite数据库
db = SQLAlchemy(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), unique=True, nullable=False)

@app.route('/users', methods=['GET'])
def get_users():
    users = User.query.all()
    return jsonify([user.name for user in users])

@app.route('/users', methods=['POST'])
def create_user():
    data = request.get_json()
    new_user = User(name=data['name'])
    db.session.add(new_user)
    db.session.commit()
    return jsonify({
   'message': 'User created!'}), 201

@app.route('/users/<int:user_id>', methods=['PUT'])
def update_user(user_id):
    data = request.get_json()
    user = User.query.get(user_id)
    if user:
        user.name = data['name']
        db.session.commit()
        return jsonify({
   'message': 'User updated!'})
    else:
        return jsonify({
   'error': 'User not found'}), 404

@app.route('/users/<int:user_id>', methods=['DELETE'])
def delete_user(user_id):
    user = User.query.get(user_id)
    if user:
        db.session.delete(user)
        db.session.commit()
        return jsonify({
   'message': 'User deleted!'})
    else:
        return jsonify({
   'error': 'User not found'}), 404

if __name__ == '__main__':
    app.run(debug=True)

在这个例子中,我们使用了Flask-SQLAlchemy扩展来处理数据库操作。我们定义了一个User模型,并创建了对应的CRUD路由。这些路由分别处理获取所有用户、创建新用户、更新用户信息和删除用户的请求。

现在,让我们转向前端部分。使用Vue.js,我们可以构建一个用户界面来与后端API进行交互。首先,我们需要安装Vue CLI:

npm install -g @vue/cli

然后,我们创建一个新的Vue项目:

vue create frontend
cd frontend

在项目中,我们可以使用axios库来发送HTTP请求。首先安装axios:

npm install axios

接下来,我们在src目录下创建一个名为ApiService.js的文件,用于封装与后端通信的逻辑:

import axios from 'axios';

export default {
   
  getUsers() {
   
    return axios.get('http://localhost:5000/users');
  },
  createUser(data) {
   
    return axios.post('http://localhost:5000/users', data);
  },
  updateUser(id, data) {
   
    return axios.put(`http://localhost:5000/users/${
     id}`, data);
  },
  deleteUser(id) {
   
    return axios.delete(`http://localhost:5000/users/${
     id}`);
  },
};

最后,在Vue组件中,我们可以使用这个ApiService来获取数据和发送请求。例如,在一个名为UserList.vue的组件中,我们可以这样获取用户列表:

<template>
  <div>
    <ul>
      <li v-for="user in users" :key="user.id">{
  { user.name }}</li>
    </ul>
  </div>
</template>

<script>
import ApiService from './ApiService';
export default {
    
  data() {
    
    return {
    
      users: [],
    };
  },
  created() {
    
    ApiService.getUsers().then(response => {
    
      this.users = response.data;
    });
  },
};
</script>

通过以上步骤,我们已经成功创建了一个使用Flask和Vue.js的RESTful API服务。这个服务包括了前后端的基本交互,可以作为更复杂应用的起点。在实际开发中,你可能还需要添加用户认证、错误处理、数据验证等功能。但希望这篇文章为你提供了一个良好的基础,让你能够继续探索和完善你的API服务。

相关文章
|
JSON 安全 Java
API 一键转换 MCP 服务!Higress 助今日投资快速上线 MCP 市场
今日投资的技术负责人介绍了如何通过Higress MCP 市场完善的解决方案,快捷地将丰富的金融数据 API 转化为 MCP 工具,帮助用户通过 MCP 的方式非常轻松地调用专业金融数据,自由快速地构建自己的金融大模型应用。
1427 23
|
Web App开发 数据采集 JavaScript
动态网页爬取:Python如何获取JS加载的数据?
动态网页爬取:Python如何获取JS加载的数据?
1938 58
|
11月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
人工智能 算法 API
国产化用于单导联和六导联的心电算法及API服务
随着智能设备普及,心电图功能逐渐应用于智能手表、体脂仪等设备。苏州唯理推出单导联及6导联心电算法API服务,由AI驱动,1分钟内快速评估心律失常、房颤、早搏等问题,已广泛用于医疗设备及三甲医院。其算法还可评估压力、疲劳、情绪状态,筛查效率远超进口设备。唯理率先实现国产医疗级心电芯片,支持快速集成与私有化部署,适用于多种智能硬件。
|
人工智能 自然语言处理 API
硅基流动入驻阿里云云市场,核心API服务将全面接入阿里云百炼平台💐
2025年6月18日,AI Infra企业硅基流动与阿里云达成战略合作,加入“繁花计划”并入驻云市场。其大模型推理平台SiliconCloud核心API将接入阿里云百炼平台,依托灵骏智能计算集群为客户提供高效服务。作为国内领先的MaaS平台,SiliconCloud已集成百余款开源大模型,服务600万用户及众多企业。双方将在算力协同、行业解决方案等领域深化合作,推动AI生态发展。
1580 0
|
安全 前端开发 数据库
Python 语言结合 Flask 框架来实现一个基础的代购商品管理、用户下单等功能的简易系统
这是一个使用 Python 和 Flask 框架实现的简易代购系统示例,涵盖商品管理、用户注册登录、订单创建及查看等功能。通过 SQLAlchemy 进行数据库操作,支持添加商品、展示详情、库存管理等。用户可注册登录并下单,系统会检查库存并记录订单。此代码仅为参考,实际应用需进一步完善,如增强安全性、集成支付接口、优化界面等。
|
搜索推荐 数据可视化 数据挖掘
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
本文介绍了一个基于Python Flask框架的招聘数据分析推荐系统,该系统具备用户登录注册、数据库连接查询、首页推荐、职位与城市分析、公司性质分析、职位需求分析、用户信息管理以及数据可视化等功能,旨在提高求职者的就业效率和满意度,同时为企业提供人才匹配和招聘效果评估手段。
892 0
基于Python flask框架的招聘数据分析推荐系统,有数据推荐和可视化功能
|
关系型数据库 MySQL 数据库
如何使用Python的Flask框架来构建一个简单的Web应用
如何使用Python的Flask框架来构建一个简单的Web应用
446 0
|
前端开发 安全 JavaScript
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
Python的Flask框架的学习笔记(前后端变量传送,文件上传,网页返回)内含实战:实现一个简单的登录页面
831 0
|
JSON 测试技术 数据库
Python的Flask框架
【10月更文挑战第4天】Python的Flask框架
388 1

推荐镜像

更多