Python库的多样性使得它们可以在不同的应用场景中发挥作用,不同场景下同一个库可能拥有不同的功能,本系列未来会有不同的分类,可能会出现相同的库。数量很多,慢慢整理。文中的示例都是最基础的用法,有些就顺手写了,有些就丢给Ai,看个乐就行。
1. FastAPI – 高性能 API 框架,支持自动生成文档
功能: FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,基于标准的 Python 类型提示。
使用场景:
- 构建高性能的异步 API。
- 需要自动生成 OpenAPI (Swagger) 文档的项目。
- 与 Pydantic 数据验证结合的应用。
示例:
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}
2. Tornado – 异步 Web 框架,适合高并发
功能: Tornado 是一个 Python Web 框架和异步网络库,支持长轮询、WebSockets 和其他需要高并发的应用。
使用场景:
- 构建实时 Web 服务。
- 需要处理大量并发连接的应用。
- 聊天应用、实时数据更新等。
示例:
import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, Tornado!") if __name__ == "__main__": app = tornado.web.Application([('/', MainHandler)]) app.listen(8888) tornado.ioloop.IOLoop.current().start()
3. Sanic – 异步 Web 框架,支持 WebSocket
功能: Sanic 是基于 Python 3.5+ 的异步 Web 框架,利用了 asyncio,提供极高的性能。
使用场景:
- 需要极高性能的 Web 服务。
- 构建 WebSocket 应用。
- 与其他异步库集成。
示例:
from sanic import Sanic from sanic.response import json app = Sanic("My Hello, world app") @app.route("/") async def test(request): return json({"hello": "world"}) if __name__ == "__main__": app.run(host="0.0.0.0", port=8000)
4. Bottle – 简单的微型 Web 框架
功能: Bottle 是一个轻量级的 WSGI 微框架,适用于构建小型 Web 应用和 API。
使用场景:
- 快速开发小型 Web 应用或原型。
- 需要一个简单的框架,不依赖于外部库。
- 作为学习 Python Web 开发的起点。
示例:
from bottle import route, run @route('/hello') def hello(): return "Hello World!" run(host='localhost', port=8080)
5. Pyramid – 灵活扩展的 Web 框架
功能: Pyramid 是一个通用、开放的 Python Web 框架,提供灵活的配置和扩展能力。
使用场景:
- 构建从小型到大型的 Web 应用。
- 需要高度可定制和扩展的 Web 框架。
- 与其他 Python 库和框架集成。
示例:
from wsgiref.simple_server import make_server from pyramid.config import Configurator from pyramid.response import Response def hello_world(request): return Response('Hello World!') if __name__ == '__main__': with Configurator() as config: config.add_route('hello', '/') 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()
6. Falcon – 专为 REST API 设计的框架
功能: Falcon 是一个极简、轻量级的 WSGI 框架,专为构建快速、可扩展的 REST API 而设计。
使用场景:
- 构建高性能的 REST API。
- 微服务架构中的 API 开发。
- 需要低开销、快速响应的应用。
示例:
import falcon class Resource: def on_get(self, req, resp): resp.media = {"message": "Hello, Falcon!"} app = falcon.App() app.add_route('/', Resource()) if __name__ == '__main__': from wsgiref import simple_server httpd = simple_server.make_server('localhost', 8000, app) httpd.serve_forever()
7. CherryPy – 面向对象的 Web 框架
功能: CherryPy 是一个极简的 Python Web 框架,支持 WSGI 和 HTTP/1.1,提供了内置的多线程服务器。
使用场景:
- 需要一个简单、快速的 Web 框架。
- 构建面向对象的 Web 应用。
- 需要内置的 HTTP 服务器和线程池。
示例:
import cherrypy class HelloWorld(object): @cherrypy.expose def index(self): return "Hello World!" if __name__ == '__main__': cherrypy.quickstart(HelloWorld())
8. Hug – 声明式的 API 框架
功能: Hug 是一个用于创建 API 的 Python 框架,支持多种接口(HTTP、CLI、WebSocket)并自动生成 API 文档。
使用场景:
- 需要快速构建 API 的项目。
- 构建可同时服务于 HTTP、CLI、WebSocket 的 API。
- 需要自动生成 API 文档的应用。
示例:
import hug @hug.get('/') def hello(): return {'hello': 'world'} if __name__ == '__main__': hug.API(__name__).http.serve(host='0.0.0.0', port=8000)
9. Quart – 与 Flask 相似,但支持异步
功能: Quart 是 Flask 的异步版本,使用 asyncio 和 ASGI 协议,适用于需要异步处理的应用。
使用场景:
- 需要异步处理的 Web 应用。
- 与其他异步库集成的项目。
- 高并发、实时 Web 服务。
示例:
from quart import Quart, jsonify app = Quart(__name__) @app.route('/') async def hello(): return jsonify({"message": "Hello, Quart!"}) if __name__ == '__main__': app.run()
10. Web2py – 强调简洁和安全性的 Web 框架
功能: Web2py 是一个全栈框架,提供了从开发到部署的完整解决方案,强调安全性和易用性。
使用场景:
- 快速开发 Web 应用。
- 需要内置数据库抽象层和 ORM 的项目。
- 强调安全性和简洁性的应用开发。
示例:
from gluon import current from gluon.tools import Auth def index(): return dict(message="Welcome to Web2py!")