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

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

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) == 512. 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 = "

Hello World

"

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 requests19. 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 Welcome28. 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: present43. Docker SDK使用说明:Docker的Python客户端

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

代码示例:

代码语言: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)) # True46. 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开发的主要领域,每个框架都有其独特的优势和适用场景。开发者可以根据具体项目需求选择合适的工具组合,提高开发效率和质量。

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

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

相关推荐

游泳速度提升的秘密:四大技巧让你游得更快!
365bet足球比

游泳速度提升的秘密:四大技巧让你游得更快!

📅 06-24 👁️ 6755
自制面包糠
365bet足球比

自制面包糠

📅 09-12 👁️ 4512
手机车贷计算器app排行榜TOP10推荐
det365APP

手机车贷计算器app排行榜TOP10推荐

📅 08-26 👁️ 3250
世界杯总奖金差距明显,媒体:男女足实现“同工同酬”有多难
板栗去皮方法全攻略:5種輕鬆去殼技巧不傷手
36365快速检测中心

板栗去皮方法全攻略:5種輕鬆去殼技巧不傷手

📅 01-21 👁️ 9966
2026无线门铃选购攻略:五款高性价比智能门铃深度评测,守护家门安全无死角