找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

325

积分

0

好友

45

主题
发表于 前天 00:47 | 查看: 5| 回复: 0

图片

Python以其多功能性和庞大的生态系统著称,其丰富的开源框架覆盖了从Web开发、数据科学到自动化、游戏开发等诸多领域。本文精选了50个常用且高效的Python框架,每个框架均附有核心使用说明、典型适用场景及代码示例,旨在帮助开发者快速理解并应用于实际项目。

以下是按照主要应用领域划分的框架列表。

一、全栈Web开发框架

1. Django

使用说明:功能完备的“大而全”Web框架,内置ORM、模板引擎和自动化管理界面。 适用场景:构建复杂的企业级Web应用,如内容管理系统(CMS)、电商平台。 代码示例

# 创建简单的视图和路由
from django.http import HttpResponse
from django.urls import path

def home(request):
    return HttpResponse("Welcome to Django!")

urlpatterns = [
    path('', home),
]
2. Flask

使用说明:轻量级微框架,核心简洁,通过扩展来增加功能,灵活性极高。 适用场景:快速开发RESTful API、微服务或小型Web应用。 代码示例

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello, Flask!"

if __name__ == '__main__':
    app.run(debug=True)
3. FastAPI

使用说明:基于Python类型提示的现代、高性能API框架,支持异步,并自动生成交互式API文档。 适用场景:需要高性能和清晰文档的API开发,尤其是异步处理需求高的项目。 代码示例

from fastapi import FastAPI
app = FastAPI()

@app.get("/items/{item_id}")
async def read_item(item_id: int):
    return {"item_id": item_id}
4. Tornado

使用说明:异步网络库和Web框架,专为处理长连接和高并发设计。 适用场景:实时Web服务、WebSocket应用、长轮询。 代码示例

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Tornado is running!")

app = tornado.web.Application([(r'/', MainHandler)])
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
19. Bottle

使用说明:超轻量级的WSGI微框架,所有代码可放在一个文件中,无额外依赖。 适用场景:快速原型验证、构建极简的API服务。 代码示例

from bottle import route, run

@route('/hello')
def hello():
    return "Hello Bottle!"

run(host='localhost', port=8080)
20. CherryPy

使用说明:面向对象的Web框架,内置了生产环境可用的HTTP服务器。 适用场景:需要以对象方式组织代码的企业级应用、RESTful API开发。 代码示例

import cherrypy

class HelloWorld:
    @cherrypy.expose
    def index(self):
        return "Hello CherryPy!"

cherrypy.quickstart(HelloWorld())

二、数据科学与机器学习框架

5. Pandas

使用说明:提供高性能、易用的数据结构和数据分析工具,核心是DataFrame。 适用场景:数据清洗、转换、聚合、统计分析以及时间序列处理。 代码示例

import pandas as pd
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data)
print(df.head())
6. NumPy

使用说明:Python科学计算的基础包,提供强大的N维数组对象和广播功能。 适用场景:数值计算、线性代数、随机数生成及机器学习中的数据预处理。 代码示例

import numpy as np
arr = np.array([1, 2, 3])
print(arr * 2)  # 输出 [2 4 6]
7. Scikit-learn

使用说明:基于NumPy和SciPy构建的机器学习算法库,包含分类、回归、聚类、降维等丰富工具。 适用场景:传统的监督/无监督学习、模型评估与选择、数据挖掘。 代码示例

from sklearn.ensemble import RandomForestClassifier
X = [[0, 0], [1, 1]]
y = [0, 1]
clf = RandomForestClassifier()
clf.fit(X, y)
print(clf.predict([[2, 2]]))
8. TensorFlow

使用说明:由Google开发的开源端到端机器学习平台,支持大规模数值计算和深度学习。 适用场景:构建和训练复杂的神经网络,应用于图像识别、自然语言处理等领域。 代码示例

import tensorflow as tf
model = tf.keras.Sequential([
    tf.keras.layers.Dense(10, activation='relu'),
    tf.keras.layers.Dense(1)
])
model.compile(optimizer='adam', loss='mse')
9. PyTorch

使用说明:由Facebook开发的深度学习框架,以动态计算图著称,灵活且易于调试。 适用场景:学术研究、快速原型开发、计算机视觉和自然语言处理项目。 代码示例

import torch
x = torch.tensor([1.0, 2.0])
y = x * 2
print(y)  # 输出 tensor([2., 4.])
21. Keras

使用说明:高阶神经网络API,可运行于TensorFlow、Theano等后端之上,旨在实现快速实验。 适用场景:深度学习入门、教育以及需要快速构建和验证模型原型的场景。 代码示例

from keras.models import Sequential
from keras.layers import Dense

model = Sequential()
model.add(Dense(10, activation='relu', input_dim=8))
model.compile(optimizer='adam', loss='binary_crossentropy')
22. OpenCV

使用说明:开源计算机视觉和机器学习软件库,包含大量图像处理和视频分析算法。 适用场景:人脸识别、物体检测、图像增强、视频分析。 代码示例

import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow('Gray Image', gray)
cv2.waitKey(0)
23. Dask

使用说明:用于并行计算的灵活库,可以扩展Pandas DataFrame和NumPy数组的功能到多核或分布式集群。 适用场景:处理超过单机内存容量的大型数据集,进行并行数据分析。 代码示例

import dask.dataframe as dd
df = dd.read_csv('large_dataset.csv')
result = df.groupby('category').mean().compute()
24. Vaex

使用说明:高性能的DataFrame库,采用内存映射和惰性计算,可处理海量数据。 适用场景:对十亿行级别的数据集进行交互式探索和分析,而无需占用大量内存。 代码示例

import vaex
df = vaex.open('huge_file.hdf5')
df.groupby(df.category).agg({'value': 'mean'})

三、网络爬虫与自动化测试

10. Selenium

使用说明:用于Web应用程序自动化测试的工具,可模拟真实用户操作浏览器。 适用场景:Web UI自动化测试、动态网页内容抓取、自动化表单提交。 代码示例

from selenium import webdriver
driver = webdriver.Chrome()
driver.get("https://www.example.com")
print(driver.title)
driver.quit()
11. PyTest

使用说明:功能强大、语法简洁的测试框架,支持参数化测试、固件(fixture)和丰富的插件生态。 适用场景:单元测试、集成测试、复杂的功能测试。 代码示例

def add(a, b):
    return a + b

def test_add():
    assert add(2, 3) == 5
25. Scrapy

使用说明:快速、高层次的Web爬虫框架,基于Twisted实现异步处理,用于提取结构化数据。 适用场景:大规模、系统性的网页抓取、数据采集项目。 代码示例

import scrapy

class BlogSpider(scrapy.Spider):
    name = 'blogspider'
    start_urls = ['https://blog.example.com']

    def parse(self, response):
        for title in response.css('h2'):
            yield {'title': title.css('a ::text').get()}
26. Locust

使用说明:开源负载测试工具,使用Python代码定义用户行为,可模拟百万级并发用户。 适用场景:网站、API的性能测试、压力测试和容量规划。 代码示例

from locust import HttpUser, task

class WebsiteUser(HttpUser):
    @task
    def index_page(self):
        self.client.get("/")
27. Robot Framework

使用说明:基于关键字的通用自动化测试框架,易于阅读的表格语法,可扩展性强。 适用场景:验收测试、端到端自动化测试、机器人流程自动化(RPA)。 代码示例

*** Test Cases ***
Valid Login
    Open Browser    https://example.com    chrome
    Input Text    username    testuser
    Input Password    password    testpass
    Click Button    login
    Page Should Contain    Welcome
15. Requests

使用说明:优雅而简单的HTTP库,让发送HTTP请求变得异常简单。 适用场景:调用第三方API、进行简单的网页抓取。 代码示例

import requests
response = requests.get('https://api.github.com')
print(response.status_code)
16. Beautiful Soup

使用说明:用于从HTML或XML文件中提取数据的Python库,能自动将输入文档转换为Unicode编码。 适用场景:解析网页、提取特定标签内容、配合Requests库进行轻量级爬虫。 代码示例

from bs4 import BeautifulSoup
html_doc = "<html><body><p>Hello World</p></body></html>"
soup = BeautifulSoup(html_doc, 'html.parser')
print(soup.p.text)  # 输出 "Hello World"

四、GUI与游戏开发框架

13. Pygame

使用说明:一套用于编写视频游戏的Python模块,包含对图像、声音、事件等的支持。 适用场景:2D独立游戏开发、多媒体应用程序、教育演示项目。 代码示例

import pygame
pygame.init()
screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption("Pygame Demo")
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
pygame.quit()
14. Arcade

使用说明:现代的Python框架,用于创建2D视频游戏,相比Pygame API更简洁、易学。 适用场景:2D游戏开发、计算机图形学教学。 代码示例

import arcade

class Game(arcade.Window):
    def on_draw(self):
        arcade.start_render()
        arcade.draw_circle_filled(100, 100, 25, arcade.color.BLUE)

game = Game(800, 600, "Arcade Demo")
arcade.run()
28. Tkinter

使用说明:Python的标准GUI工具包,基于Tcl/Tk,无需额外安装。 适用场景:开发简单的桌面应用程序、快速制作工具界面。 代码示例

import tkinter as tk
window = tk.Tk()
label = tk.Label(window, text="Hello Tkinter!")
label.pack()
window.mainloop()
29. PyQt

使用说明:Qt应用框架的Python绑定,功能非常强大,可创建专业级的跨平台桌面应用。 适用场景:需要复杂界面、高性能的跨平台桌面软件开发。 代码示例

from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello PyQt!')
label.show()
app.exec_()
30. Kivy

使用说明:开源Python库,用于快速开发具有创新用户界面的多点触控应用,可跨平台运行。 适用场景:移动应用(Android/iOS)、支持触控的桌面应用。 代码示例

from kivy.app import App
from kivy.uix.button import Button

class TestApp(App):
    def build(self):
        return Button(text='Hello Kivy!')

TestApp().run()

五、任务队列、网络与消息通信

12. Celery

使用说明:分布式任务队列/作业队列系统,支持实时处理和定时任务调度。 适用场景:处理后台异步任务(如发送邮件、图片处理)、定时任务、工作流。 代码示例

from celery import Celery
app = Celery('tasks', broker='redis://localhost')

@app.task
def multiply(x, y):
    return x * y

# 异步调用任务
multiply.delay(4, 5)
31. Twisted

使用说明:事件驱动的网络编程框架,支持众多协议(如HTTP、SMTP、POP3),适合编写网络服务器和客户端。 适用场景:实现自定义网络协议、开发高性能的网络服务器。 代码示例

from twisted.internet import reactor, protocol

class Echo(protocol.Protocol):
    def dataReceived(self, data):
        self.transport.write(data)

factory = protocol.ServerFactory()
factory.protocol = Echo
reactor.listenTCP(8000, factory)
reactor.run()
32. ZeroMQ

使用说明:高性能的异步消息传递库,提供了多种通信模式,如发布-订阅、请求-回复等。 适用场景:构建分布式系统、微服务间通信、高吞吐量的消息传递。 代码示例

import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
message = socket.recv()
socket.send(b"World")
33. SocketIO

使用说明:基于WebSocket协议的双向通信库,实现了实时、事件驱动的通信。 适用场景:聊天应用、实时通知推送、协作编辑、在线游戏。 代码示例

from flask import Flask
from flask_socketio import SocketIO, emit

app = Flask(__name__)
socketio = SocketIO(app)

@socketio.on('message')
def handle_message(data):
    emit('response', {'data': 'Received: ' + data})

六、数据可视化库

34. Matplotlib

使用说明:Python的2D绘图库的鼻祖,可以创建高质量的静态、动态和交互式图表。 适用场景:生成科学论文级别的图表、进行基础的数据探索可视化。 代码示例

import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('Some Numbers')
plt.show()
35. Seaborn

使用说明:基于Matplotlib的高级统计图表库,提供了更美观的默认样式和更简洁的复杂图表绘制API。 适用场景:探索数据分布、绘制统计关系图(如热力图、分布图、分类散点图)。 代码示例

import seaborn as sns
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)
36. Plotly

使用说明:交互式图形库,可以创建复杂的、可缩放的、在Web浏览器中展示的交互式图表。 适用场景:构建交互式仪表盘、Web应用中的数据可视化、地理信息可视化。 代码示例

import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length")
fig.show()
37. Bokeh

使用说明:用于现代Web浏览器的交互式可视化库,目标是提供优雅、简洁的D3.js风格图形。 适用场景:创建交互式的Web可视化应用、大数据集的流式可视化。 代码示例

from bokeh.plotting import figure, show
p = figure(title="Basic Line Plot", x_axis_label='x', y_axis_label='y')
p.line([1, 2, 3, 4, 5], [6, 7, 2, 4, 5])
show(p)

七、数据库与ORM

38. SQLAlchemy

使用说明:功能强大的Python SQL工具包和对象关系映射(ORM)框架,提供了完整的企业级持久化模式。 适用场景:需要复杂SQL查询、多数据库支持或高度灵活数据模型的企业级应用。学习数据库与中间件相关知识能帮助你更好地理解其应用场景。 代码示例

from sqlalchemy import create_engine, Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String)

engine = create_engine('sqlite:///users.db')
Base.metadata.create_all(engine)
39. Peewee

使用说明:小型、表达力强的ORM,支持SQLite、MySQL和PostgreSQL,设计简单直观。 适用场景:小型项目、快速原型开发、需要轻量级ORM的场景。 代码示例

from peewee import *
db = SqliteDatabase('people.db')

class Person(Model):
    name = CharField()
    class Meta:
        database = db

db.connect()
db.create_tables([Person])
40. Django ORM

使用说明:Django框架内置的ORM系统,以“Django式”的声明性语法定义数据模型,与Django其他组件(如Admin、表单)深度集成。 适用场景:Django项目中快速进行数据库操作和模型管理。 代码示例

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=100)
    published_date = models.DateField()

八、系统运维与部署

41. Fabric

使用说明:用于SSH的Python库和命令行工具,用于应用程序部署或系统管理任务自动化。 适用场景:在多台服务器上自动执行Shell命令、代码部署、系统配置。 代码示例

from fabric import Connection
result = Connection('web-server').run('uname -s')
print(f"Server type: {result.stdout.strip()}")
42. Ansible

使用说明:无代理的自动化运维工具,使用YAML语言编写“剧本”(playbook)来描述自动化任务。 适用场景:配置管理、应用程序部署、基础设施即代码(IaC)。 代码示例(YAML):

- name: Ensure Apache is installed
  hosts: webservers
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present
43. Docker SDK

使用说明:Docker引擎的官方Python客户端,允许你通过Python脚本管理Docker容器、镜像、网络等。 适用场景:自动化容器生命周期管理、集成Docker到CI/CD流水线、构建自定义容器管理工具。 代码示例

import docker
client = docker.from_env()
client.containers.run("ubuntu", "echo hello world")

九、安全与密码学

44. PyCrypto / cryptography

使用说明:提供各种加密算法(如AES, RSA)实现的库(注意:PyCrypto已停止维护,推荐使用cryptography库)。 适用场景:数据加密解密、数字签名、安全通信协议实现。 代码示例(PyCrypto风格):

from Crypto.Cipher import AES
key = b'Sixteen byte key'
cipher = AES.new(key, AES.MODE_EAX)
data = b'Secret message'
ciphertext, tag = cipher.encrypt_and_digest(data)
45. Passlib

使用说明:密码哈希库,支持30多种安全哈希算法,如bcrypt、argon2,并提供了易用的验证接口。 适用场景:在用户认证系统中安全地存储和验证密码。 代码示例

from passlib.hash import pbkdf2_sha256
hash = pbkdf2_sha256.hash("password")
print(pbkdf2_sha256.verify("password", hash))  # True

十、工具与效率提升库

46. Arrow

使用说明:提供了更友好、更人性化的API来处理日期和时间,替代Python内置的datetime模块。 适用场景:复杂的日期时间操作、时区转换、人性化的时间格式化。 代码示例

import arrow
utc = arrow.utcnow()
local = utc.to('US/Pacific')
print(local.format('YYYY-MM-DD HH:mm:ss'))
47. Pydantic

使用说明:基于Python类型提示的数据验证和设置管理库,运行时强制执行类型提示。 适用场景:API请求/响应数据验证、配置文件解析、创建数据契约。这是构建健壮Python后端应用的重要工具之一。 代码示例

from pydantic import BaseModel

class User(BaseModel):
    name: str
    age: int

user = User(name="John", age=30)
print(user.json())  # {"name": "John", "age": 30}
48. Rich

使用说明:一个Python库,用于在终端中输出富文本和精美的格式,支持表格、进度条、语法高亮等。 适用场景:美化命令行工具的输出、创建更友好的调试信息、构建终端仪表板。 代码示例

from rich.console import Console
console = Console()
console.print("Hello, [bold magenta]Rich[/bold magenta]!", style="bold green")
49. Click

使用说明:用于以可组合的方式创建漂亮命令行界面的Python包,只需很少的代码。 适用场景:开发复杂的命令行工具、为脚本添加友好的CLI参数解析。 代码示例

import click

@click.command()
@click.option('--count', default=1, help='Number of greetings')
def hello(count):
    for _ in range(count):
        click.echo('Hello World!')

if __name__ == '__main__':
    hello()
50. Black

使用说明:一个毫不妥协的Python代码格式化工具,通过自动重新格式化代码来保证代码风格统一。 适用场景:团队协作中强制执行一致的代码风格、在提交代码前自动格式化。 代码示例(命令行):

black my_script.py  # 自动格式化代码
17. Loguru

使用说明:旨在带来愉悦体验的Python日志库,配置简单,支持彩色输出和更好的异常处理。 适用场景:为应用程序添加易于使用且功能强大的日志记录功能。 代码示例

from loguru import logger
logger.add("file.log")
logger.info("This is a log message")
18. Poetry

使用说明:新一代的Python依赖管理和打包工具,通过pyproject.toml文件管理项目依赖、版本和构建配置。 适用场景:管理项目依赖、创建可发布的包、确保环境一致性。 代码示例(命令行):

poetry new myproject
cd myproject
poetry add requests

总结

以上50个框架仅是Python丰富生态中的冰山一角,但它们覆盖了现代Python开发中最核心和活跃的领域。从构建全栈Web应用的Django,到驱动人工智能前沿研究的TensorFlow和PyTorch,再到提升开发效率的各类工具库,选择合适的框架组合能够极大地提升项目的开发速度、可维护性和性能。建议开发者根据项目具体需求,从中选取最适合的工具进行学习和应用。




上一篇:Sneeit Framework未授权RCE漏洞深度解析与WordPress安全加固
下一篇:Postgres 18异步IO与索引优化实战:何时可替代Redis缓存层
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区(YunPan.Plus) ( 苏ICP备2022046150号-2 )

GMT+8, 2025-12-6 20:58 , Processed in 0.102185 second(s), 38 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 CloudStack.

快速回复 返回顶部 返回列表