Python全栈实战:前后端分离开发核心要点
后端API搭建
FastAPI与Flask是Python全栈开发的主流后端框架选择。两者均支持RESTful API开发,但适用场景不同:
FastAPI代码示例(高性能方案):
from fastapi import FastAPI app = FastAPI() @app.get("/items/{item_id}") def read_item(item_id: int): return {"item_id": item_id}Flask代码示例(轻量级方案):
from flask import Flask app = Flask(__name__) @app.route('/items/<int:item_id>') def get_item(item_id): return {'item_id': item_id}前端框架集成
Vue3与React是现代前端开发的主流选择,与Python后端配合时需注意:
Vue3调用API示例:
axios.get('http://localhost:8000/items/1') .then(response => { this.itemData = response.data })React调用API示例:
fetch('http://localhost:8000/items/1') .then(res => res.json()) .then(data => { this.setState({ itemData: data }) })跨域处理
后端需配置CORS以允许前端访问:
FastAPI配置:
from fastapi.middleware.cors import CORSMiddleware app.add_middleware( CORSMiddleware, allow_origins=["*"], allow_methods=["*"] )Flask配置:
from flask_cors import CORS CORS(app, resources={r"/*": {"origins": "*"}})数据验证
使用Pydantic进行严格的数据校验:
from pydantic import BaseModel class Item(BaseModel): name: str price: float tax: float = None部署方案
生产环境推荐部署方式:
- 后端:Nginx + Gunicorn/Uvicorn
- 前端:Nginx静态文件服务
- 数据库:PostgreSQL/MySQL
性能优化技巧
- 后端启用异步处理(FastAPI原生支持)
- 前端使用axios拦截器统一处理请求
- 启用HTTP缓存控制
- 实现JWT身份验证
调试工具推荐
- Postman:接口测试
- Swagger UI:自动生成API文档(FastAPI内置)
- Vue DevTools/React DevTools:前端调试
- Chrome Network面板:监控请求响应
常见问题解决方案
- 跨域问题:检查CORS配置
- 数据格式错误:验证请求头Content-Type
- 404错误:确认路由路径匹配
- 500错误:查看后端日志输出
项目结构规范
典型全栈项目目录结构:
project/ ├── backend/ # Python后端代码 ├── frontend/ # Vue/React前端代码 ├── docs/ # 项目文档 └── deploy/ # 部署脚本安全注意事项
- 永远不要信任前端传入的数据
- 实施输入验证和输出编码
- 使用HTTPS加密传输
- 定期更新依赖库版本
学习资源推荐
- FastAPI官方文档
- Vue/React官方教程
- MDN Web开发文档
- Real Python技术博客
扩展功能建议
- 添加WebSocket实时通信
- 实现文件上传下载
- 集成第三方登录(OAuth2.0)
- 加入自动化测试流程
版本控制策略
- 使用Git进行代码管理
- 遵循语义化版本控制
- 建立分支管理规范
- 编写有意义的提交信息
监控与日志
- 后端记录访问日志
- 前端错误跟踪(Sentry)
- 性能指标监控
- 异常报警机制
持续集成部署
- GitHub Actions自动化流程
- Docker容器化部署
- 自动化测试套件
- 蓝绿部署策略
