第 48 课 · 阶段八 · 项目实战

Web 开发:Flask 入门

Flask 是 Python 最流行的轻量级 Web 框架。这一课五分钟跑起第一个网站,理解路由、模板,并部署到公网体验。

第 48 课阶段八 · 项目实战难度:进阶建议时长:45 分钟关键词:Flask · 路由 · 模板 · 部署

🎯 学完本课你将掌握

  • 安装 Flask 并创建第一个网页
  • 理解路由与视图函数
  • 用模板动态渲染 HTML
  • 理解请求 GET/POST

一、安装与最小应用

安装
1pip install flask
app.py(第一个网站)
1from flask import Flask
2
3app = Flask(__name__)
4
5@app.route("/")
6def home():
7 return "<h1>你好,我的第一个网站!</h1>"
8
9if __name__ == "__main__":
10 app.run(debug=True)

二、运行并访问

  1. 1
    终端运行 python app.py。
  2. 2
    看到 Running on http://127.0.0.1:5000 即启动成功。
  3. 3
    浏览器打开 http://127.0.0.1:5000,看到网页!
✅ 要点
debug=True 时改代码自动重启,还能在网页显示详细报错(仅开发环境使用)。

三、多个路由与动态参数

路由.py
1from flask import Flask
2app = Flask(__name__)
3
4@app.route("/")
5def home():
6 return "首页"
7
8@app.route("/about")
9def about():
10 return "关于我"
11
12@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_template
2app = Flask(__name__)
3
4@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_template
2app = Flask(__name__)
3
4@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>

六、部署上线(简单体验)

七、常见错误与解决

常见错误与解决

错误现象原因 / 解决方法
Port 5000 already in use端口被占用,改 app.run(port=5001)。
TemplateNotFound模板必须在 templates 文件夹里,检查路径与文件名。
页面 404访问路径与 @app.route 不一致,检查 URL。
✍️ 小练习
做一个个人名片网站:首页自我介绍、/hobby 展示爱好列表(用模板 for 循环渲染)、一个提交表单的回显页面。
📌 本节小结
Flask 三件事:@app.route 定路由、render_template 用模板、request 处理表单。五分钟跑起网站后,你会意识到 Python 真的什么都能干——下一课再给它配个数据库。