以下是 Python 常用框架的分类解析:
一、Web 开发框架
1. Django
-
定位:全能型框架,内置 ORM、模板引擎、路由系统等
-
特点 :
- 开箱即用(如自带后台管理、用户认证)
- 遵循 MVC 设计模式(MTV 变体)
- 适合中大型项目(如 CMS、电商平台)
-
代码示例 :
pythonfrom django.http import HttpResponse def hello(request): return HttpResponse("Hello Django!")
2. Flask
-
定位:轻量级微框架,核心简洁但可扩展
-
特点 :
- 无强制依赖库(开发者自由选择插件)
- 路由设计直观(如
@app.route('/')) - 适合小型服务或 API 开发
-
代码示例 :
pythonfrom flask import Flask app = Flask(__name__) @app.route('/') def home(): return "Hello Flask!"
3. FastAPI
-
定位:高性能异步框架,专为 API 设计
-
特点 :
- 基于 ASGI 标准(支持异步请求)
- 自动生成 OpenAPI 文档
- 数据验证依赖 Pydantic
-
代码示例 :
pythonfrom fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello FastAPI"}
二、数据科学框架
1. NumPy
-
核心功能:多维数组计算
-
典型应用 :
- 数值运算(如矩阵乘法)
- 科学计算基础库
-
示例操作 :
pythonimport numpy as np arr = np.array([1, 2, 3]) print(arr * 2) # 输出: [2 4 6]
2. Pandas
-
核心功能:数据处理与分析
-
核心结构 :
DataFrame(表格型数据结构)Series(一维带标签数组)
-
典型操作 :
pythonimport pandas as pd data = pd.DataFrame({"A": [1, 2], "B": [3, 4]}) print(data.describe()) # 统计摘要
3. Scikit-learn
-
定位:机器学习算法库
-
功能覆盖 :
- 分类、回归、聚类
- 数据预处理(如标准化)
-
示例流程 :
pythonfrom sklearn.ensemble import RandomForestClassifier model = RandomForestClassifier() model.fit(X_train, y_train) # 训练模型
三、深度学习框架
1. TensorFlow
-
特点 :
- 谷歌开发,支持分布式训练
- 生态完整(如 TensorBoard 可视化)
-
典型应用 :
pythonimport tensorflow as tf model = tf.keras.Sequential([ tf.keras.layers.Dense(128, activation='relu') ])
2. PyTorch
-
特点 :
- 动态计算图(更灵活调试)
- 学术界广泛使用
-
代码风格 :
pythonimport torch model = torch.nn.Linear(10, 2) output = model(torch.randn(3, 10))
四、测试框架
1. pytest
-
优势 :
- 简洁语法(如
assert直接断言) - 丰富插件生态
- 简洁语法(如
-
示例测试 :
pythondef test_addition(): assert 1 + 1 == 2
五、网络爬虫框架
Scrapy
-
核心组件 :
Spider(定义爬取规则)Pipeline(数据清洗与存储)
-
工作流示例 :
pythonimport scrapy class BlogSpider(scrapy.Spider): name = 'blog' start_urls = ['https://example.com'] def parse(self, response): titles = response.css('h2::text').getall() yield {"titles": titles}
选择建议
- Web 开发 :
- 快速构建 → Django
- 轻量 API → Flask / FastAPI
- 数据分析:Pandas + NumPy
- 深度学习:PyTorch(研究) / TensorFlow(生产)
- 爬虫:Scrapy(结构化数据抓取)
通过框架组合,可高效应对不同场景需求。