用Python写Web,最直接的好处是能把你脑子里那些零散的想法快速拼成一个能跑起来的东西。我上周用Flask写了个内部工具,从建项目到部署上线,前后不到三小时。这速度放在Java或PHP里,光配环境就得折腾半天。
Web开发的核心无非三件事:接收请求、处理数据、返回响应。Python在这三个环节都有成熟的库帮你兜底。Django自带ORM和Admin后台,你定义好模型,数据库表自动生成,连增删改查的界面都不用写。我见过一个做外贸的朋友,用Django搭了个订单管理系统,他自己只写了不到200行业务逻辑,剩下的全交给框架了。
Flask更轻。一个路由、一个函数,就能对外提供服务。比如你要做个API给前端调,@app.route('/api/data')下面挂个函数返回JSON,完事。没有复杂的配置,没有强制目录结构,想怎么组织代码全凭自己。这种自由度在小项目里特别舒服,改起来快,不用翻文档找“这个功能该放哪个文件”。
异步这块,FastAPI这两年很火。它用Python的类型提示做参数校验,写起来顺手,性能也接近Node.js。我拿它做过一个图片处理服务,用户上传图片,后台异步调OpenCV处理,前端轮询结果。并发量不大,但响应速度比同步方案快了三倍不止。关键是代码量少,一个async def就搞定。
数据采集和展示是另一个高频场景。Requests加BeautifulSoup抓数据,存进SQLite,再用Flask渲染成表格——这套组合拳我用了不下二十次。有回帮市场部抓竞品价格,每天定时跑一次,结果直接写进Google Sheets。他们早上打开表格就能看,不用登录任何后台。这种“小而美”的自动化,Python Web做起来毫无压力。
WebSocket支持也不差。Django Channels和FastAPI都能处理长连接。我做过一个实时日志面板,服务器通过WebSocket推日志到浏览器,前端用Vue接。延迟在100毫秒以内,比轮询省资源多了。虽然Python的异步性能比不上Go,但内部工具、中小型应用完全够用。
部署方面,Gunicorn加Nginx是标配。Docker一包,扔到服务器上docker-compose up就完事。我自己的博客跑在1核1G的云服务器上,Django加PostgreSQL,日均500访问量,CPU占用从来没超过10%。
当然,Python Web不是万能的。高并发、低延迟的C端产品,比如秒杀系统,还是得用Go或Java。但如果你要做的是内部系统、数据看板、API中间层、自动化工具,Python的性价比高得离谱。写起来快,改起来也快,招人还容易——会Python的人比会Java的便宜多了。
最后说个真事。上个月朋友公司要做一个供应商管理后台,预算只够请一个开发。他用Django搭了三天,功能包括供应商录入、合同上传、到期提醒。老板看完说“比之前买的SaaS好用”。这就是Python Web的典型场景:不追求极致性能,但求快速解决问题。