当前位置: 首页 > news >正文

Flask RESTful API 教程:从零实现 Python CRUD 后端服务

在现代 Web 开发中,RESTful API 是后端与前端通信的核心方式。本文将带你从零开始使用 Python Flask 构建 RESTful API,并实现完整的 CRUD(创建 Create、读取 Read、更新 Update、删除 Delete)操作。本文内容涵盖环境搭建、路由设计、数据库操作及示例代码,帮助开发者快速掌握后端开发核心技能。


一. 环境准备

在开始编写 Flask RESTful API 之前,需要确保本地开发环境配置正确。

1. 安装 Python

确保系统已安装 Python 3.8+,可通过命令检查:

python --version

如果未安装,请前往 Python 官方网站 下载并安装。

2. 创建虚拟环境

推荐使用虚拟环境隔离项目依赖:

python -m venv venv
source venv/bin/activate  # Linux/Mac
venv\Scripts\activate     # Windows

3. 安装 Flask 及相关依赖

使用 pip 安装 Flask 和 Flask-RESTful:

pip install Flask Flask-RESTful

如果需要数据库支持,可以安装 SQLite 或 SQLAlchemy:

pip install Flask-SQLAlchemy

二. 创建 Flask 项目结构

一个标准的 Flask RESTful API 项目结构示例如下:

flask_crud_api/
│
├─ app.py              # 主应用文件
├─ models.py           # 数据库模型
├─ resources.py        # API 资源与路由
├─ requirements.txt    # 项目依赖
└─ config.py           # 配置文件

这种结构清晰、可维护,便于后期扩展。


三. 定义数据库模型

models.py 中定义一个简单的用户模型(User):

from flask_sqlalchemy import SQLAlchemydb = SQLAlchemy()class User(db.Model):id = db.Column(db.Integer, primary_key=True)name = db.Column(db.String(50), nullable=False)email = db.Column(db.String(100), unique=True, nullable=False)def to_dict(self):return {'id': self.id,'name': self.name,'email': self.email}

四. 编写 API 路由与资源

resources.py 中创建 RESTful API 路由,实现 CRUD 操作:

from flask import Flask, request, jsonify
from flask_restful import Api, Resource
from models import db, Userapp = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///users.db'
db.init_app(app)api = Api(app)class UserResource(Resource):def get(self, user_id=None):if user_id:user = User.query.get(user_id)return user.to_dict() if user else {'message': 'User not found'}, 404users = User.query.all()return [user.to_dict() for user in users]def post(self):data = request.get_json()user = User(name=data['name'], email=data['email'])db.session.add(user)db.session.commit()return user.to_dict(), 201def put(self, user_id):data = request.get_json()user = User.query.get(user_id)if not user:return {'message': 'User not found'}, 404user.name = data.get('name', user.name)user.email = data.get('email', user.email)db.session.commit()return user.to_dict()def delete(self, user_id):user = User.query.get(user_id)if not user:return {'message': 'User not found'}, 404db.session.delete(user)db.session.commit()return {'message': 'User deleted'}api.add_resource(UserResource, '/users', '/users/<int:user_id>')if __name__ == '__main__':with app.app_context():db.create_all()app.run(debug=True)

五. 测试 API

使用 Postmancurl 测试 API:

  1. 创建用户:
curl -X POST http://127.0.0.1:5000/users -H "Content-Type: application/json" -d '{"name":"Alice","email":"alice@example.com"}'
  1. 查询所有用户:
curl http://127.0.0.1:5000/users
  1. 查询单个用户:
curl http://127.0.0.1:5000/users/1
  1. 更新用户信息:
curl -X PUT http://127.0.0.1:5000/users/1 -H "Content-Type: application/json" -d '{"name":"Alice Smith"}'
  1. 删除用户:
curl -X DELETE http://127.0.0.1:5000/users/1

六. 总结与最佳实践

  • Flask 适合快速搭建 RESTful API,轻量且易扩展。
  • CRUD 操作是后端开发核心技能,掌握数据增删改查有助于开发复杂业务逻辑。
  • 项目结构清晰、模块化设计便于维护和团队协作。
  • 可以结合 Flask-RESTful、Flask-SQLAlchemy 和 Marshmallow 实现更完善的 API 设计和数据验证。

通过本文教程,开发者可以从零开始搭建 Python Flask 后端服务,并实现完整的 CRUD 功能,为实际项目开发打下坚实基础。


更多详情可查看 Python Flask 教程:从零构建 RESTful API 并实现 CRUD 操作

http://www.dtcms.com/a/388960.html

相关文章:

  • 百年奢品家电ASKO亮相IFA2025|以至臻品质绘就生活新境
  • jvm排查full gc或者humongous obj思路?如何调优?
  • 实现.NetCore集成Serilog,写入日志文件,并按日期拆分文件夹
  • [新启航]航空发动机燃烧室喷嘴孔深光学 3D 轮廓测量 - 激光频率梳 3D 轮廓技术
  • iOS 上架 App 流程全解析 苹果应用发布步骤、App Store 审核流程、ipa 文件上传与 uni-app 打包实战经验
  • 22.6 单卡A100驯服30亿参数模型!DeepSpeed ZeRO-3实战显存优化指南
  • jvm垃圾搜集器
  • 小红书开放平台笔记详情接口实战:内容解析与数据挖掘全方案
  • App 上架平台全解析,iOS 应用发布流程、苹果 App Store 审核步骤
  • BeeWorks:私有化部署即时通讯,铸就企业数字安全基石
  • (数据分析方向)Flask 动漫数据可视化分析系统(Echarts + 番剧管理・大数据)(源码)✅
  • 2025 最新版 Node.js 下载安装及环境配置教程
  • 分布式流处理与消息传递——Kafka ISR(In-Sync Replicas)算法深度解析
  • JVM(三)-- 运行时数据区
  • 从比特币到Web3:数字资产犯罪的演进史
  • godot+c#实现状态机
  • linux计划任务管理
  • excel文件导入+存储过程导入表到业务表
  • Chromium 138 编译指南 macOS 篇:构建配置与编译优化(五)
  • 基于Java与Vue的MES生产制造管理系统,实现生产流程数字化管控,涵盖计划排程、质量追溯、设备监控等功能模块,提供完整源码支持二次开发,助力智能制造升级
  • 人工智能基础:从感知机到神经网络核心知识整合​
  • 电子制造设备中螺杆支撑座如何保障精度与质量控制?
  • 东莞精密制造工厂6人共用一台服务器做SolidWorks设计
  • 智能科学与技术专业毕业设计选题推荐:计算机视觉与自然语言处理
  • 基于STM32F103C8T6与HC-08蓝牙模块实现手机连接方案
  • OpenCV 4.12.0源码解析:核心模块原理与实战应用
  • PyTorch 与 TensorFlow 的深度对比分析
  • 怀旧电玩游戏ROM合集 50T模拟器游戏资源分享
  • MacCAD2019.dmg 安装包使用教程|Mac电脑安装CAD2019全流程
  • IP失效,溯源无门:微隔离如何破局容器环境下“黑域名”攻击溯源难题!