Python Flask 入门实战:从零构建 RESTful API 并实现 CRUD

AI摘要
本文是知识分享,以Python Flask框架为例,详细讲解如何从零搭建RESTful API并实现完整CRUD功能。内容包括环境配置、项目结构设计、数据库模型定义、API实现及测试方法,适合初学者快速掌握Flask后端开发。


在现代 Web 开发中,RESTful API 是前后端交互的核心技术。本文将以 Python Flask 框架为例,从零开始教你搭建 RESTful API,并实现完整的 CRUD(创建 Create、读取 Read、更新 Update、删除 Delete)功能。通过操作步骤和代码示例,你可以快速上手 Flask 后端开发。


一、准备开发环境

1. 安装 Python

确保系统已安装 Python 3.8+,执行:

python --version

如未安装,可前往 Python 官方网站 下载。

2. 创建虚拟环境

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

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

3. 安装依赖库

pip install Flask Flask-RESTful Flask-SQLAlchemy

二、项目结构设计

良好的项目结构有助于管理代码和扩展功能:

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

三、定义数据库模型

models.py 中定义用户模型:

from flask_sqlalchemy import SQLAlchemy

db = 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
        }

四、实现 RESTful API

resources.py 中实现 CRUD:

from flask import Flask, request
from flask_restful import Api, Resource
from models import db, User

app = 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'}, 404
        return [user.to_dict() for user in User.query.all()]

    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(), 201

    def put(self, user_id):
        data = request.get_json()
        user = User.query.get(user_id)
        if not user:
            return {'message': 'User not found'}, 404
        user.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'}, 404
        db.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 测试操作

使用 curlPostman 测试 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

六、入门技巧与实践建议

  • 模块化设计:模型、资源、配置分离,方便项目维护。

  • 统一管理 CRUD:Resource 类封装操作,提高代码清晰度。

  • 数据验证:可结合 Marshmallow 或自定义校验,提高请求安全性。

  • 调试与部署:开发阶段可开启 debug,生产环境关闭 debug 并结合 Gunicorn + Nginx 部署。

  • 逐步扩展:可在现有项目基础上增加认证、分页、搜索等功能,实现完整后端服务。

通过以上步骤,初学者可以快速上手 Python Flask RESTful API 开发,并掌握完整 CRUD 操作流程,为项目开发打下坚实基础。


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

本作品采用《CC 协议》,转载必须注明作者和本文链接
幂简集成
幂简集成
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
技术总监 @ 北京蜜堂有信科技有限公司
文章
227
粉丝
3
喜欢
13
收藏
14
排名:685
访问:1.1 万
私信
所有博文
博客标签
api
83
microsoft
1
google cloud
1
deepl
1
flask
1
人工智能
65
视频
1
安全
3
RESTful API
1
身份验证
1
CI/CD
2
入门教程
2
python
7
百度翻译
1
图像处理
2
AI
101
代码优化
1
代码安全
1
API设计
76
大模型
46
实战教程
1
AI客服
12
电子邮件
1
天气
1
语音转文字
1
Winston AI
1
文本内容检测
1
niutrans
1
TextUnited
1
音乐
1
GPT-OSS
2
AI助教API
1
追问式对话
1
NFT盲盒API
1
秒级出图
2
AI海报
2
链上营销
2
生成式API
2
nano banana
1
GPT-Realtime
1
弹幕TTS
1
实践指南
1
通义旗舰模型
1
在线编程API
1
阶梯计费
1
入门实践
1
API 成本
1
HIP-1217
1
gRPC 入门
1
DeFi API
1
区块链 API
1
DeepSeek-V3.1
1
AI面试题API
1
快速上手
1
Qwen2-VL API
1
编程题库
1
截图判题
1
量化压缩
1
端侧AI
1
API实战
1
群聊API
1
多Agent
1
API教程
1
少儿编程
1
AI程序员
1
通义灵码
1
Realtime API
1
跨境电商直播
1
实时翻译
1
短视频审核
1
AI Crawl Control
1
审核入门
1
Workers AI
1
短剧脚本生成API
1
AI编剧API
1
自动化测评
1
开发者平台
1
Kimi K2-0905
2
256K上下文API
1
端侧推理
1
延迟优化
1
Claude API 迁移
3
智谱 API
1
API 操作
1
跨境 REST API
1
Google Ads API
1
短视频广告
1
ROI优化
1
Anthropic 新政
1
API 审计
1
开发者实践
1
免费 API
1
DeepSeek-V3.1 新计价模型
1
成本优化教程
1
e签宝签署API
1
文心X1.1实战
1
AI对话开发
1
金融问答API
1
AI工具替代
1
AIt
1
AI提示词
5
Vibes 企业培训
1
AI 视频提示词
1
文化传播降本增效
1
跨部门协作
1
内部活动通知
1
SEO全链优化
1
长尾关键词挖掘
1
内容策略规划
1
Meta标签优化
1
SEO文案优化
1
AI辅助SEO
1
AI视频SEO
1
Vibes视频优化
1
代码缺陷
1
智能优化
1
开发效率
1
代码性能优化
1
代码效率提升
1
代码现代化
1
性能分析工具
1
AI优化
1
程序性能提升
1
社区赞助商