Python库的多样性使得它们可以在不同的应用场景中发挥作用,不同场景下同一个库可能拥有不同的功能,本系列未来会有不同的分类,可能会出现相同的库。数量很多,慢慢整理。文中的示例都是最基础的用法,有些就顺手写了,有些就丢给Ai,看个乐就行。
1. Django – 高级全栈 Web 框架
功能: Django 是一个高层次的 Python Web 框架,鼓励快速开发和干净、实用的设计。
使用场景:
- 快速开发复杂的 Web 应用程序。
- 内容管理系统、社交网络、科学计算平台等。
- 需要 ORM、用户认证、管理后台的项目。
示例:
# settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'myapp', ] # views.py from django.http import HttpResponse from django.shortcuts import render def hello(request): return HttpResponse("Hello, Django!") # urls.py from django.urls import path from . import views urlpatterns = [ path('', views.hello, name='hello'), ]
2. Flask – 轻量级后端框架
功能: Flask 是一个轻量级的 WSGI 网络应用框架,设计简洁,容易上手。
使用场景:
- 快速开发小型到中型的 Web 应用。
- API 开发。
- 作为微服务的一部分。
示例:
from flask import Flask, jsonify app = Flask(__name__) @app.route('/') def hello_world(): return jsonify({"message": "Hello, Flask!"}) if __name__ == '__main__': app.run(debug=True)
3. FastAPI – 高性能 API 框架
功能: FastAPI 是一个现代的、快速(高性能)的 Web 框架,用于构建 API,基于标准的 Python 类型提示。
使用场景:
- 构建高性能的异步 API。
- 需要数据验证和序列化的 API。
- 现代 Python 开发,利用异步特性。
示例:
from fastapi import FastAPI app = FastAPI() @app.get("/") async def read_root(): return {"Hello": "World"} @app.get("/items/{item_id}") async def read_item(item_id: int, q: str = None): return {"item_id": item_id, "q": q}
4. Bottle – 微型 Web 框架
功能: Bottle 是一个轻量级的 WSGI 微框架,包含在单个文件中,适合小型 Web 应用。
使用场景:
- 快速开发原型和小型 Web 应用。
- 教育目的或学习 Web 开发。
- 作为嵌入式 Web 服务器。
示例:
from bottle import route, run, template @route('/hello/<name>') def index(name): return template('<b>Hello {{name}}</b>!', name=name) run(host='localhost', port=8080)
5. Tornado – 异步 Web 框架
功能: Tornado 是一个 Python Web 框架和异步网络库,专门设计用于处理高并发。
使用场景:
- 实时 Web 服务,如聊天应用、推送服务。
- 非阻塞 I/O 的长轮询或 WebSocket 应用。
- 高性能、可扩展的 Web 服务。
示例:
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, Tornado!") if __name__ == "__main__": application = tornado.web.Application([ (r"/", MainHandler), ]) application.listen(8888) tornado.ioloop.IOLoop.current().start()
6. Sanic – 异步支持的 Flask 式框架
功能: Sanic 是一个异步请求处理的 Python 3.5+ 框架,基于 Flask 的设计理念。
使用场景:
- 需要高性能和异步处理的 Web 应用。
- 实时数据处理和 WebSocket 应用。
- 与异步库(如 asyncio)集成的项目。
示例:
from sanic import Sanic from sanic.response import json app = Sanic("MyHelloWorldApp") @app.get("/") async def test(request): return json({"hello": "world"}) if __name__ == "__main__": app.run(host="0.0.0.0", port=8000)
7. Falcon – REST API 专用框架
功能: Falcon 是一个极简的 WSGI 库,专为构建快速、可扩展的 API 而设计。
使用场景:
- 构建轻量级、高性能的 RESTful API。
- 微服务架构。
- 与 WSGI 服务器结合使用,提供高吞吐量。
示例:
import falcon class Resource: def on_get(self, req, resp): resp.media = {"message": "Hello, Falcon!"} app = falcon.App() app.add_route('/', Resource())
8. CherryPy – 面向对象的 Web 框架
功能: CherryPy 是一个最小化框架,提供一个 HTTP 服务器和 WSGI 线程池。
使用场景:
- 需要简单、轻量级的 Web 框架。
- 开发面向对象的 Web 应用。
- 作为 Web 服务的核心框架。
示例:
import cherrypy class HelloWorld: @cherrypy.expose def index(self): return "Hello, CherryPy!" if __name__ == '__main__': cherrypy.quickstart(HelloWorld())
9. Pyramid – 灵活扩展的框架
功能: Pyramid 是一个通用、灵活的 Web 框架,适合小型到大型 Web 应用。
使用场景:
- 构建从小型到大型的 Web 应用。
- 需要框架扩展性和灵活性的项目。
- 与现有系统集成。
示例:
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response def hello_world(request): return Response('Hello %(name)s!' % request.matchdict) if __name__ == '__main__': with Configurator() as config: config.add_route('hello', '/hello/{name}') config.add_view(hello_world, route_name='hello') app = config.make_wsgi_app() server = make_server('0.0.0.0', 6543, app) server.serve_forever()
10. Hug – 为 API 构建的微框架
功能: Hug 是一个微框架,旨在简化 API 的创建,支持多种接口和数据格式。
使用场景:
- 快速开发 RESTful API。
- 需要支持多种数据格式(如 JSON、YAML)的 API。
- 开发需要自动文档生成的 API。
示例:
import hug @hug.get('/') def hello(): return 'Hello, Hug!' if __name__ == '__main__': hug.API(__name__).http.serve()