首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 50个常用开源框架,实用高效

Python 50个常用开源框架,实用高效

作者头像
用户11081884
发布2026-07-20 19:11:29
发布2026-07-20 19:11:29
610
举报

Python作为一门多功能编程语言,拥有丰富的开源框架生态系统,覆盖Web开发、数据科学、自动化、游戏开发等多个领域。本文将介绍50个常用Python框架,每个框架均包含使用说明、适用场景及原创代码示例,帮助开发者快速掌握其核心功能。

1. Django

使用说明:全功能Web框架,支持ORM、模板引擎和自动化管理界面。

适用场景:构建复杂的企业级Web应用,如内容管理系统、电商平台。

代码示例

代码语言:javascript
复制
# 创建简单的视图和路由
from django.http import HttpResponse
from django.urls import path

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

urlpatterns = [
    path('', home),
]

2. Flask

使用说明:轻量级微框架,依赖扩展实现功能。

适用场景:快速开发API或小型Web服务。

代码示例

代码语言:javascript
复制
from flask import Flask
app = Flask(__name__)

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

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

3. FastAPI

使用说明:基于类型提示的现代API框架,自动生成文档。

适用场景:高性能API开发,需异步支持的项目。

代码示例

代码语言:javascript
复制
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服务、WebSocket应用。

代码示例

代码语言:javascript
复制
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()

5. Pandas

使用说明:数据处理与分析库,提供DataFrame结构。

适用场景:数据清洗、统计分析、时间序列处理。

代码示例

代码语言:javascript
复制
import pandas as pd
data = {'Name': ['Alice', 'Bob'], 'Age': [25, 30]}
df = pd.DataFrame(data)
print(df.head())

6. NumPy

使用说明:数值计算基础库,支持多维数组操作。

适用场景:科学计算、矩阵运算、机器学习数据预处理。

代码示例

代码语言:javascript
复制
import numpy as np
arr = np.array([1, 2, 3])
print(arr * 2)  # 输出 [2 4 6]

7. Scikit-learn

使用说明:机器学习算法库,包含分类、回归、聚类等工具。

适用场景:模型训练、数据挖掘、预测分析。

代码示例

代码语言:javascript
复制
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

使用说明:端到端机器学习平台,支持深度学习模型构建。

适用场景:神经网络训练、图像识别、自然语言处理。

代码示例

代码语言:javascript
复制
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

使用说明:动态图深度学习框架,灵活易调试。

适用场景:学术研究、原型开发、计算机视觉项目。

代码示例

代码语言:javascript
复制
import torch
x = torch.tensor([1.0, 2.0])
y = x * 2
print(y)  # 输出 tensor([2., 4.])

10. Selenium

使用说明Web自动化测试工具,模拟浏览器操作。

适用场景UI测试、爬虫、自动化表单提交。

代码示例

代码语言:javascript
复制
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(" https://www.example.com ")
print(driver.title)
driver.quit()

11. PyTest

使用说明:简洁的测试框架,支持参数化测试和插件扩展。

适用场景:单元测试、集成测试。

代码示例

代码语言:javascript
复制
def add(a, b):
    return a + b

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

12. Celery

使用说明:分布式任务队列,支持异步任务处理。

适用场景:后台任务、定时作业、大规模数据处理。

代码示例

代码语言:javascript
复制
from celery import Celery
app = Celery('tasks', broker='redis://localhost')

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

# 调用任务
multiply.delay(4, 5)

13. Pygame

使用说明2D游戏开发库,提供图形和声音接口。

适用场景:独立游戏开发、教育项目。

代码示例

代码语言:javascript
复制
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游戏、图形演示。

代码示例

代码语言:javascript
复制
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()

15. Requests

使用说明HTTP库,简化网络请求操作。

适用场景API调用、网页抓取。

代码示例

代码语言:javascript
复制
import requests
response = requests.get(' https://api.github.com')
print(response.status_code)

16. Beautiful Soup

使用说明HTML/XML解析库,提取网页数据。

适用场景:网页爬虫、数据抽取。

代码示例

代码语言:javascript
复制
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"

17. Loguru

使用说明:简化日志记录,支持彩色输出和异常捕获。

适用场景:应用日志管理、调试。

代码示例

代码语言:javascript
复制
from loguru import logger
logger.add("file.log")
logger.info("This is a log message")

18. Poetry

使用说明:依赖管理和打包工具,替代setup.py

适用场景:项目依赖管理、打包发布。

代码示例(命令行):

代码语言:javascript
复制
poetry new myproject
cd myproject
poetry add requests

19. Bottle

使用说明:超轻量级WSGI微框架,单文件部署

适用场景:原型开发、小型API服务

代码示例:

代码语言:javascript
复制
from bottle import route, run
@route('/hello')
def hello():
    return "Hello Bottle!"
run(host='localhost', port=8080)

20. CherryPy

使用说明:面向对象的Web框架,内置HTTP服务器

适用场景:企业级应用、RESTful API

代码示例:

代码语言:javascript
复制
import cherrypy
class HelloWorld:
    @cherrypy.expose
    def index(self):
        return "Hello CherryPy!"
cherrypy.quickstart(HelloWorld())

21. Keras

使用说明:高层神经网络API,简化深度学习

适用场景:快速原型、教育用途

代码示例:

代码语言:javascript
复制
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

使用说明:计算机视觉库,图像处理工具

适用场景:图像识别、视频分析

代码示例:

代码语言:javascript
复制
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和NumPy

适用场景:大数据处理、分布式计算

代码示例:

代码语言:javascript
复制
import dask.dataframe as dd
df = dd.read_csv('large_dataset.csv')
result = df.groupby('category').mean().compute()

24. Vaex

使用说明:高性能DataFrame库,懒加载数据

适用场景:海量数据分析、内存优化

代码示例:

代码语言:javascript
复制
import vaex
df = vaex.open('huge_file.hdf5')
df.groupby(df.category).agg({'value': 'mean'})

25. Scrapy

使用说明:专业爬虫框架,异步处理

适用场景:大规模网页抓取、数据采集

代码示例:

代码语言:javascript
复制
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

使用说明:负载测试工具,模拟用户行为

适用场景:性能测试、压力测试

代码示例:

代码语言:javascript
复制
from locust import HttpUser, task
class WebsiteUser(HttpUser):
    @task
    def index_page(self):
        self.client.get("/")

27. Robot Framework

使用说明:关键字驱动的测试框架

适用场景:验收测试、自动化测试

代码示例:

代码语言:javascript
复制
*** 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

28. Tkinter

使用说明:Python标准GUI工具包

适用场景:桌面应用、简单界面

代码示例:

代码语言:javascript
复制
import tkinter as tk
window = tk.Tk()
label = tk.Label(window, text="Hello Tkinter!")
label.pack()
window.mainloop()

29. PyQt

使用说明:Qt库的Python绑定,专业GUI开发

适用场景:跨平台桌面应用

代码示例:

代码语言:javascript
复制
from PyQt5.QtWidgets import QApplication, QLabel
app = QApplication([])
label = QLabel('Hello PyQt!')
label.show()
app.exec_()

30. Kivy

使用说明:跨平台移动应用框架

适用场景:移动应用、多点触控应用

代码示例:

代码语言:javascript
复制
from kivy.app import App
from kivy.uix.button import Button
class TestApp(App):
    def build(self):
        return Button(text='Hello Kivy!')
TestApp().run()

31. Twisted

使用说明:事件驱动网络引擎

适用场景:网络协议实现、服务器开发

代码示例:

代码语言:javascript
复制
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

使用说明:高性能消息队列库

适用场景:分布式系统、消息传递

代码示例:

代码语言:javascript
复制
import zmq
context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")
message = socket.recv()
socket.send(b"World")

33. SocketIO

使用说明:实时Web通信框架

适用场景:聊天应用、实时数据推送

代码示例:

代码语言:javascript
复制
from flask import Flask, render_template
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

使用说明:2D绘图库,创建静态图表

适用场景:数据可视化、科学绘图

代码示例:

代码语言:javascript
复制
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('Some Numbers')
plt.show()

35. Seaborn

使用说明:基于Matplotlib的统计可视化

适用场景:数据分布可视化、统计图表

代码示例:

代码语言:javascript
复制
import seaborn as sns
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="total_bill", data=tips)

36. Plotly

使用说明:交互式可视化库

适用场景:动态图表、Web可视化

代码示例:

代码语言:javascript
复制
import plotly.express as px
df = px.data.iris()
fig = px.scatter(df, x="sepal_width", y="sepal_length")
fig.show()

37. Bokeh

使用说明:交互式Web可视化

适用场景:大数据可视化、仪表板

代码示例:

代码语言:javascript
复制
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])
sho(p)

38. SQLAlchemy

使用说明:Python SQL工具包和ORM

适用场景:数据库操作、复杂查询

代码示例:

代码语言:javascript
复制
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,简单易用

适用场景:小型项目、快速开发

代码示例:

代码语言:javascript
复制
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项目、快速数据库操作

代码示例:

代码语言:javascript
复制
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

使用说明:系统管理工具,自动化部署

适用场景:服务器管理、部署脚本

代码示例:

代码语言:javascript
复制
from fabric import Connection
result = Connection('web-server').run('uname -s')
print(f"Server type: {result.stdout.strip()}")

42. Ansible

使用说明:自动化运维工具,配置管理

适用场景:基础设施管理、批量部署

代码示例(YAML):

代码语言:javascript
复制
- name: Ensure Apache is installed
  hosts: webservers
  tasks:
    - name: Install Apache
      apt:
        name: apache2
        state: present

43. Docker SDK

使用说明:DockerPython客户端

适用场景:容器管理、自动化部署

代码示例:

代码语言:javascript
复制
import docker
client = docker.from_env()
client.containers.run("ubuntu", "echo hello world")

44. PyCrypto

使用说明:密码学工具包

适用场景:数据加密、安全通信

代码示例:

代码语言:javascript
复制
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

使用说明:密码哈希库

适用场景:用户认证、密码安全

代码示例:

代码语言:javascript
复制
from passlib.hash import pbkdf2_sha256
hash = pbkdf2_sha256.hash("password")
print(pbkdf2_sha256.verify("password", hash))  # True

46. Arrow

使用说明:日期时间处理库

适用场景:时间操作、时区转换

代码示例:

代码语言:javascript
复制
import arrow
utc = arrow.utcnow()
local = utc.to('US/Pacific')
print(local.format('YYYY-MM-DD HH:mm:ss'))

47. Pydantic

使用说明:数据验证库,基于类型提示

适用场景:API数据验证、配置管理

代码示例:

代码语言:javascript
复制
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

使用说明:终端富文本输出

适用场景:命令行工具、调试输出

代码示例:

代码语言:javascript
复制
from rich.console import Console
console = Console()
console.print("Hello, [bold magenta]Rich[/bold magenta]!", style="bold green")

49. Click

使用说明:命令行界面创建工具

适用场景:CLI应用、工具开发

代码示例:

代码语言:javascript
复制
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代码格式化工具 适用场景:代码规范、团队协作 代码示例(命令行):

代码语言:javascript
复制
black my_script.py  # 自动格式化代码

以上50个框架覆盖了Python开发的主要领域,每个框架都有其独特的优势和适用场景。开发者可以根据具体项目需求选择合适的工具组合,提高开发效率和质量。

“无他,惟手熟尔”!有需要的用起来!

如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-12-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Nicholas与Pypi 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Django
  • 2. Flask
  • 3. FastAPI
  • 4. Tornado
  • 5. Pandas
  • 6. NumPy
  • 7. Scikit-learn
  • 8. TensorFlow
  • 9. PyTorch
  • 10. Selenium
  • 11. PyTest
  • 12. Celery
  • 13. Pygame
  • 14. Arcade
  • 15. Requests
  • 16. Beautiful Soup
  • 17. Loguru
  • 18. Poetry
  • 19. Bottle
  • 20. CherryPy
  • 21. Keras
  • 22. OpenCV
  • 23. Dask
  • 24. Vaex
  • 25. Scrapy
  • 26. Locust
  • 27. Robot Framework
  • 28. Tkinter
  • 29. PyQt
  • 30. Kivy
  • 31. Twisted
  • 32. ZeroMQ
  • 33. SocketIO
  • 34. Matplotlib
  • 35. Seaborn
  • 36. Plotly
  • 37. Bokeh
  • 38. SQLAlchemy
  • 39. Peewee
  • 40. Django ORM
  • 41. Fabric
  • 42. Ansible
  • 43. Docker SDK
  • 44. PyCrypto
  • 45. Passlib
  • 46. Arrow
  • 47. Pydantic
  • 48. Rich
  • 49. Click
  • 50. Black
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档