开场白:10分钟能干啥?
如果给你 10 分钟,你会做什么?
- 吃碗泡面?(泡面的等待时间甚至比这篇文章还长......)
- 刷个短视频?(然后不知不觉 2 小时过去了 😭)
- 打开 VS Code 盯着屏幕发呆?
今天,我要教你 用 10 分钟搭建一个 Python Web 应用,让你能在短时间内做出点真正"可交付"的东西!💡
为啥要追求"快"?⏩
我们写代码,最怕的就是:
- 折腾环境半天,代码一行没写 😵
- 上来就做架构设计,结果一个功能都跑不起来 🚧
- 开发 3 个月,产品经理告诉你需求改了 💀
所以,快速开发的关键是:
- 快速迭代,尽早看到效果(反馈越快,开发越有动力!💪)
- 避免一上来就搞复杂架构(先有能用的 Demo,再慢慢优化)
- 让代码保持简单,减少不必要的"仪式感"(不折腾才是王道!😆)
Python 微框架选哪一个?🤔
Python 里有很多 Web 框架,有些全家桶(Django),有些轻量级(Flask/FastAPI),我们今天要聊的是 微框架,因为它们能让你"无痛"启动一个 Web 应用!
框架 | 适用场景 | 特色 |
---|---|---|
FastAPI + Jinja | API 驱动应用,兼容前端框架 | 高性能,异步支持,自动生成 API 文档 |
Flask + HTMX | 轻量级后端渲染,减少前端代码 | 经典 Web 框架,生态丰富 |
Streamlit | 数据展示、仪表盘、快速可视化 | 适合数据分析师,几乎不用写 HTML/CSS |
下面,我们分别看看如何用 FastAPI 、Flask + HTMX 和 Streamlit 快速实现一个 Web 应用!🚀
1️⃣ FastAPI:极速 API + Jinja 模板
FastAPI 是个高性能异步 Web 框架,它还内置了 API 文档,适合快速开发 API 或小型 Web 应用。
📌 代码示例(FastAPI + Jinja2)
python
# main.py
from fastapi import FastAPI
from fastapi.responses import HTMLResponse
from jinja2 import Template
app = FastAPI()
html_template = Template("""
<!DOCTYPE html>
<html>
<head>
<title>10-Minute App</title>
</head>
<body>
<h1>Hello, World!</h1>
<p>我用 FastAPI + Jinja 不到10分钟做了个网站.</p>
</body>
</html>
""")
@app.get("/", response_class=HTMLResponse)
async def home():
return html_template.render()
📍 关键点:
- FastAPI 提供了快速 API 开发能力。
- Jinja2 用于渲染 HTML 模板,方便返回 Web 页面。
- async/await 让应用支持异步,提高性能。
👉 运行这个应用:
sh
uvicorn main:app --reload
然后打开浏览器,看到 Hello, World!
,搞定!🎉\

2️⃣ Flask + HTMX:老牌框架,局部刷新
Flask 经典稳定,HTMX 则能帮你 减少前端 JavaScript 代码,用纯 HTML 实现异步交互!
📌 代码示例(Flask + HTMX)
python
from flask import Flask, render_template_string
app = Flask(__name__)
html = """
<!DOCTYPE html>
<html>
<head>
<title>Flask + HTMX 网站</title>
<script src="https://unpkg.com/[email protected]/dist/htmx.min.js"></script>
</head>
<body>
<h1>测试网站</h1>
<div hx-get="/time" hx-trigger="load" hx-target="#time-container"></div>
<div id="time-container" ></div>
</body>
</html>
"""
@app.route("/")
def index():
return render_template_string(html)
@app.route("/time")
def time():
import datetime
return f"当前时间为: {datetime.datetime.now().strftime('%H:%M:%S')}"
if __name__ == "__main__":
app.run(debug=True)
📍 关键点:
- Flask 用于处理请求,返回 HTML 页面。
- HTMX 让你用
<button hx-get="/data" hx-swap="outerHTML">
实现局部刷新。
👉 运行 Flask:
sh
python main.py
然后在浏览器访问 http://127.0.0.1:5000/
,就能看到页面了!🎉
3️⃣ Streamlit:超快的数据可视化 Web 应用
如果你的需求是数据可视化,Streamlit 简直是 Python 里的 神器!😎
📌 代码示例(Streamlit)
python
import streamlit as st
st.title("快速创建 Web 应用")
st.write("10 分钟搞定一个 Python Web App!🎉")
# 交互输入框
name = st.text_input("你的名字是?")
if name:
st.write(f"你好,{name}!")
📍 关键点:
- Streamlit 让你用超少代码写出可交互的 Web 界面。
- 支持 Markdown、输入框、按钮、图表等组件,特别适合数据展示。
👉 运行 Streamlit:
sh
streamlit run main.py
然后你的 Web 应用就自动弹出来了!🎉
总结:10 分钟真的够了!💡
今天,我们用 10 分钟搞定了 三个不同的 Python Web 应用:
- FastAPI + Jinja 👉 适合 API 驱动的 Web 开发 🚀
- Flask + HTMX 👉 适合轻量级后端渲染 🏗️
- Streamlit 👉 适合数据可视化 💡
你可以根据自己的需求,选择合适的框架快速上手!别再"准备环境"浪费时间了,赶紧写代码吧!😆
💬 你最喜欢哪个微框架?欢迎在评论区讨论!🔥