第 48 课 · 阶段八 · 项目实战
Web 开发:Flask 入门
Flask 是 Python 最流行的轻量级 Web 框架。这一课五分钟跑起第一个网站,理解路由、模板,并部署到公网体验。
🎯 学完本课你将掌握
- 安装 Flask 并创建第一个网页
- 理解路由与视图函数
- 用模板动态渲染 HTML
- 理解请求 GET/POST
一、安装与最小应用
安装
1pip install flaskapp.py(第一个网站)
1from flask import Flask23app = Flask(__name__)45@app.route("/")6def home():7 return "<h1>你好,我的第一个网站!</h1>"89if __name__ == "__main__":10 app.run(debug=True)二、运行并访问
- 1终端运行 python app.py。
- 2看到 Running on http://127.0.0.1:5000 即启动成功。
- 3浏览器打开 http://127.0.0.1:5000,看到网页!
✅ 要点
debug=True 时改代码自动重启,还能在网页显示详细报错(仅开发环境使用)。
三、多个路由与动态参数
路由.py
1from flask import Flask2app = Flask(__name__)34@app.route("/")5def home():6 return "首页"78@app.route("/about")9def about():10 return "关于我"1112@app.route("/user/<name>")13def user(name):14 return f"你好,{name}!" # 访问 /user/小明四、模板:HTML 与 Python 分离
把 HTML 放进 templates 文件夹,用 Jinja2 模板语法把变量渲染进去。
templates/index.html(先创建 templates 目录)
1<!DOCTYPE html>2<html>3<head><meta charset="utf-8"><title>{{ title }}</title></head>4<body>5 <h1>{{ message }}</h1>6 <ul>7 {% for item in items %}8 <li>{{ item }}</li>9 {% endfor %}10 </ul>11</body>12</html>app.py(使用模板)
1from flask import Flask, render_template2app = Flask(__name__)34@app.route("/")5def home():6 return render_template(7 "index.html",8 title="我的网站",9 message="Python + Flask 真酷!",10 items=["第一课", "第二课", "第三课"],11 )五、处理表单:GET 与 POST
表单.py
1from flask import Flask, request, render_template2app = Flask(__name__)34@app.route("/", methods=["GET", "POST"])5def home():6 if request.method == "POST":7 name = request.form["name"]8 return f"你好,{name}!"9 return render_template("form.html")templates/form.html
1<form method="post">2 <input type="text" name="name" placeholder="输入你的名字">3 <button type="submit">提交</button>4</form>六、部署上线(简单体验)
- 本地开发就够学习;真正上线需部署到服务器(如云服务器、PythonAnywhere、Vercel)。
- 线上运行关掉 debug,用 gunicorn 等生产服务器,并配好安全措施。
- 部署是完整课程,本课先掌握本地跑通即可。
七、常见错误与解决
常见错误与解决
| 错误现象 | 原因 / 解决方法 |
|---|---|
Port 5000 already in use | 端口被占用,改 app.run(port=5001)。 |
TemplateNotFound | 模板必须在 templates 文件夹里,检查路径与文件名。 |
页面 404 | 访问路径与 @app.route 不一致,检查 URL。 |
✍️ 小练习
做一个个人名片网站:首页自我介绍、/hobby 展示爱好列表(用模板 for 循环渲染)、一个提交表单的回显页面。
📌 本节小结
Flask 三件事:@app.route 定路由、render_template 用模板、request 处理表单。五分钟跑起网站后,你会意识到 Python 真的什么都能干——下一课再给它配个数据库。