楼层: 首页/ 软件技术/ Python Web 开发/ Python Web 框架概览
1

Python Web 框架概览

Why Python Web & Framework Landscape

先聊两句"为什么用 Python 写 Web",再上三大框架对比表,最后给你一张选型决策图。Web 开发的本质是:浏览器发请求 → 服务器处理 → 返回 HTML/JSON。框架帮你把"路由、请求解析、模板渲染、数据库"这些重复活封装好,你只管写业务。

论为什么选 Python 写 Web

① 开发快:Django 一天能撸出一个带后台的内容站;FastAPI 写个 REST API 几十行就跑起来。② 生态全:ORM、表单、认证、权限、后台、邮件、缓存,开箱即用。③ AI 应用后端首选:你要接大模型、做 RAG、写数据管道,Python 是唯一一等公民——别的语言还在纠结怎么调 PyTorch。

新手常见误区

误区 1:"学 Web 必须先学透 HTTP/TCP"——不用,先把路由+请求响应跑通,遇到问题再回头补。误区 2:"框架选哪个最牛"——没有最好,只有最合适。误区 3:"上来就学 Django 的所有内置功能"——先跑通 hello world,用到啥学啥。误区 4:"生产用 flask run"——绝对不行,前面说过。

三大框架对比

框架一句话定位强项弱项
Flask微框架,灵活轻量,"给你一把锤子,钉子自己买"极简、自由、生态插件多;适合小项目、微服务、学习不带 ORM/表单/Admin,大项目要自己拼
FastAPI现代异步框架,自动生成 API 文档,性能直逼 Node/Go原生 async、Pydantic 自动校验、Swagger/ReDoc 自动文档;AI 后端首选不带 Admin,偏 API 而非页面
Django全栈框架,batteries-included,"管饱还送勺子"自带 ORM / Admin / 认证 / 表单 / 路由 / 模板,大项目省心重、学习曲线陡、异步支持相对晚

选型建议

你的场景选谁
小型 API、微服务、学习原型Flask(同步够用)或 FastAPI(要异步/文档)
AI 应用后端、大模型网关、微服务FastAPI(异步 + Pydantic + 自动文档,事实标准)
内容站、管理后台、CMS、电商Django(Admin 后台是杀手锏,省一半工作量)
团队多人、要规范、要长期维护Django(约定优于配置,不会乱)

一次 Web 请求的完整生命周期

步骤发生了什么
1. DNS 解析域名 → IP 地址。
2. TCP/TLS 握手和服务器建立连接(HTTPS 多一步证书校验)。
3. 发 HTTP 请求浏览器发请求行(方法+路径)、请求头、(可能的)请求体。
4. 服务器路由匹配Nginx → Gunicorn/Uvicorn → 框架路由找到对应视图函数。
5. 业务处理视图函数执行:查数据库、调模型、渲染模板。
6. 返回响应状态码 + 响应头 + 响应体(HTML/JSON)。
7. 浏览器渲染解析 HTML/CSS/JS,显示页面。

HTTP 状态码速查

码段含义常见例子
2xx成功200 OK;201 Created(新建成功);204 No Content(删除成功无返回)。
3xx重定向301 永久;302 临时;304 Not Modified(走缓存)。
4xx客户端错400 参数错;401 未登录;403 没权限;404 找不到;422 校验错(FastAPI 常用)。
5xx服务器错500 内部错误;502 网关错;503 维护中。

ASGI vs WSGI:同步还是异步

论两个协议,别搞混

WSGI(Web Server Gateway Interface)是老一代同步标准:Flask/Django 每个请求占一个线程,干完下一个。简单粗暴,但不支持 WebSocket 和长连接。ASGI(Asynchronous Server Gateway Interface)是新一代异步标准:FastAPI/Starlette 一个事件循环挂几千个协程,支持 WebSocket、SSE、长连接。生产部署:FastAPI 用 Uvicorn(或 Gunicorn + UvicornWorker);Flask/Django 用 Gunicorn;前面都套一层 Nginx 处理静态文件和 TLS。