一、核心框架​

1. ​Django​ - 全功能型框架

  • 适用场景​:快速构建企业级应用(如 CMS、电商平台、内部管理系统)。

  • 核心特性​:

    • 自带 ORM、Admin 后台、表单系统、用户认证。

    • 遵循 MTV 模式(Model-Template-View)。

  • 示例代码​:

    # views.py
    from django.http import JsonResponse
    from django.views import View
    
    class HelloView(View):
        def get(self, request):
            return JsonResponse({"message": "Hello, Django!"})

2. ​Flask​ - 轻量级微框架

  • 适用场景​:小型 API 服务、微服务、快速原型开发。

  • 核心特性​:

    • 灵活、可扩展,依赖少。

    • 通过插件(如 Flask-SQLAlchemy、Flask-JWT)添加功能。

  • 示例代码​:

    from flask import Flask
    app = Flask(__name__)
    
    @app.route('/')
    def hello():
        return {"message": "Hello, Flask!"}

3. ​FastAPI​ - 高性能异步框架

  • 适用场景​:高并发 API、需要自动文档生成(如 OpenAPI/Swagger)。

  • 核心特性​:

    • 基于 ​Starlette​(异步支持)和 ​Pydantic​(数据验证)。

    • 支持 WebSocket、GraphQL。

  • 示例代码​:

    from fastapi import FastAPI
    from pydantic import BaseModel
    
    app = FastAPI()
    
    class Item(BaseModel):
        name: str
        price: float
    
    @app.post("/items/")
    async def create_item(item: Item):
        return {"item": item}

4. ​其他框架​

  • Tornado​:异步非阻塞框架,适合长轮询和 WebSocket。

  • Sanic​:类似 Flask 的异步框架,对标 Node.js 的 Express。

  • aiohttp​:基于 asyncio 的 HTTP 客户端/服务端框架。


​二、数据库与 ORM​

1. ​ORM 工具​

  • Django ORM​:Django 内置,支持迁移和复杂查询。

  • SQLAlchemy​:Python 最强大的 ORM(支持异步 sqlalchemy[asyncio])。

  • Peewee​:轻量级 ORM,适合小型项目。

  • Tortoise ORM​:异步 ORM(与 FastAPI 配合使用)。

2. ​数据库驱动​

  • PostgreSQL​:psycopg2(同步) / asyncpg(异步)。

  • MySQL​:mysql-connector-python / aiomysql(异步)。

  • SQLite​:内置支持。

3. ​连接池与性能优化​

  • 同步连接池​:SQLAlchemy 自带连接池。

  • 异步连接池​:asyncpg.pool(PostgreSQL)、aiomysql(MySQL)。


​三、API 开发与协议​

1. ​RESTful API 设计​

  • 工具​:Django REST Framework(DRF)、Flask-RESTful、FastAPI。

  • 版本控制​:通过 URL 或 Header(如 Accept: application/vnd.api.v1+json)。

  • 认证与授权​:

    • JWT​:PyJWTFlask-JWT-ExtendedFastAPI 的 OAuth2PasswordBearer

    • OAuth2​:authlib 库。

2. ​GraphQL​

  • ​:graphene(Django/Flask)、strawberry(FastAPI 友好)。

3. ​WebSocket​

  • ​:websockets、FastAPI 内置支持、Django Channels。


​四、部署与运维​

1. ​服务部署​

  • WSGI 服务器​:Gunicorn(+ Nginx 反向代理)。

  • ASGI 服务器​:Uvicorn(FastAPI、Starlette)、Daphne(Django Channels)。

  • 容器化​:Docker + Docker Compose。

  • 云服务​:AWS EC2、Google Cloud Run、Heroku。

2. ​性能监控​

  • 日志​:logging 模块、structlog

  • APM​:Sentry(错误跟踪)、Prometheus + Grafana(指标监控)。

3. ​自动化测试​

  • 单元测试​:unittestpytest

  • API 测试​:requestshttpx(异步)。


​五、安全最佳实践​

  1. 输入验证​:

    • 使用 Pydantic(FastAPI)或 Django 表单。

  2. 防御攻击​:

    • SQL 注入​:ORM 自动转义参数。

    • XSS​:模板引擎自动转义(如 Jinja2)。

    • CSRF​:Django 中间件、Flask-WTF。

  3. HTTPS​:强制使用 TLS(通过 Nginx 配置)。


​六、微服务与扩展​

1. ​消息队列​

  • Celery​:分布式任务队列(支持 Redis/RabbitMQ)。

  • RQ​(Redis Queue):轻量级替代方案。

2. ​缓存​

  • Redis​:redis-py(同步) / aioredis(异步)。

  • Memcached​:pymemcache

3. ​服务发现与治理​

  • Consul​:服务注册与健康检查。

  • gRPC​:高性能 RPC 框架(grpcio 库)。


​七、项目结构示例​

myapp/
├── app/
│   ├── __init__.py
│   ├── main.py          # FastAPI 应用入口
│   ├── routes/          # 路由模块
│   ├── models/          # 数据库模型
│   ├── schemas/         # Pydantic 数据模型
│   └── utils/           # 工具类(认证、日志)
├── tests/               # 测试代码
├── requirements.txt     # 依赖列表
├── Dockerfile
└── docker-compose.yml

​八、学习资源​

  1. 官方文档​:

    • Django

    • FastAPI

    • Flask

  2. 书籍​:

    • 《Python Web开发实战》(Django/Flask 综合实践)

    • 《Building Python Web APIs with FastAPI》

  3. 课程​:

    • Udemy: REST APIs with Flask and Python

    • Coursera: Django for Everybody


​总结​

  • 小型项目​:选 Flask 或 FastAPI,快速灵活。

  • 企业级应用​:用 Django 全栈能力减少重复工作。

  • 高并发场景​:FastAPI + 异步数据库驱动 + Redis 缓存。

  • 微服务架构​:FastAPI/Flask + Docker + 消息队列。