Python Flask 入门实战:从零构建 RESTful API 并实现 CRUD
在现代 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 测试操作
使用 curl 或 Postman 测试 API 功能:
- 创建用户
curl -X POST http://127.0.0.1:5000/users
-H "Content-Type: application/json"
-d '{"name":"Alice","email":"alice@example.com"}'
- 查询所有用户
curl http://127.0.0.1:5000/users
- 查询单个用户
curl http://127.0.0.1:5000/users/1
- 更新用户信息
curl -X PUT http://127.0.0.1:5000/users/1
-H "Content-Type: application/json"
-d '{"name":"Alice Smith"}'
- 删除用户
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 协议》,转载必须注明作者和本文链接