使用Web框架
从原生WSGI到现代框架(Flask实战入门)
在Python Web开发的早期,开发者需要直接与Web服务器底层协议打交道,而如今的全功能/轻量级框架已经把这些繁琐细节封装得干干净净。本文将带你快速梳理从基础到入门的脉络,并用Flask做一个完整的小项目示例。
1. 从「手写底层」到「标准化协议」:认识WSGI
Python能有现在这么多好用的Web框架,离不开一个行业级的抽象规范——WSGI (Web Server Gateway Interface)。它统一了「Web服务器(如Nginx、Gunicorn)」和「Python应用程序」的交互方式,让开发者不用针对不同服务器单独写适配代码。
最基础的WSGI应用长什么样?
只需要一个接收两个固定参数的可调用对象(通常是函数):
原生WSGI的「痛点」(为什么需要框架?)
虽然WSGI统一了交互,但离实际开发还差十万八千里:
- 需要自己解析URL找处理函数(路由)
- 要判断GET/POST等请求方法
- 没有现成的请求/响应封装类,连取个表单参数都要自己处理字节
- 缺乏模板、数据库、安全防护这些刚需功能
- 代码一旦变多,维护成本呈指数级上升
2. 现代Python Web框架的「价值」
框架的核心就是用「约定俗成」或「配置项」代替「重复手写的底层逻辑」,提供以下核心能力:
- ✅ 自动URL路由(装饰器语法用起来超爽)
- ✅ 请求/响应对象封装(直接取参数、设状态就行)
- ✅ 内置模板引擎(HTML和Python代码解耦)
- ✅ 安全套件(CSRF保护、密码哈希等)
- ✅ 生态插件(数据库、API、WebSocket随便加)
3. 轻量级入门首选:Flask框架实战
Flask是Python社区最受欢迎的微框架——核心非常小(只做路由和模板渲染的基础封装),但通过插件可以扩展成全功能开发工具,特别适合快速上手、做小项目或原型。
3.1 第一步:安装Flask
打开终端,用pip一键安装即可:
3.2 第二步:写一个「最小化可运行」的应用
运行python app.py,打开浏览器访问http://127.0.0.1:5000就能看到效果啦~
3.3 第三步:处理多HTTP方法+表单提交
原生Flask默认只支持GET方法,要加POST等需要在装饰器里指定methods参数,配合request对象取表单数据:
3.4 第四步:(进阶小项目)带密码哈希+session的登录系统
前面的代码太简陋了——HTML直接写在Python里、密码存明文、没有登录状态,我们来优化成「符合现代最佳实践」的小原型:
前置准备:不用额外安装库!
Flask自带session(用来存登录状态)、flash(用来弹提示消息),Werkzeug(Flask的底层依赖)自带密码哈希工具generate_password_hash和check_password_hash,完全够用。
完整代码
4. 还有哪些流行的Python Web框架?
不同项目有不同需求,以下是主流框架的对比(帮你快速选型):
5. 总结
- 永远不要直接写原生WSGI:除非你要自己造框架轮子
- 根据项目选框架:小项目/入门选Flask,全功能选Django,高并发API选FastAPI
- 遵循最佳实践:重视安全(别硬编码密钥、别存明文密码)、代码解耦(用模板引擎)
- 生产环境别用app.run():换Gunicorn+Nginx或Docker部署
希望这篇入门文能帮你快速开启Python Web开发的大门!

