news 2026/8/20 13:18:19

Python进阶教程:Web开发入门(Flask)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python进阶教程:Web开发入门(Flask)

目录

  • Python进阶教程:Web开发入门(Flask)
    • 一、Flask 简介
    • 二、第一个 Flask 应用
    • 三、路由与参数
    • 四、模板渲染
    • 五、处理表单数据
    • 六、JSON API
    • 七、实战:待办清单 Web 应用
    • 总结

Python进阶教程:Web开发入门(Flask)

本文是Python 入门教程系列的第 9 篇。前面介绍了数据分析,本篇介绍用Flask框架快速搭建 Web 应用。

一、Flask 简介

Flask 是 Python 最流行的轻量级 Web 框架:

  • 简单:一个文件即可启动 Web 服务
  • 灵活:可以自由选择组件
  • 生态好:文档丰富,社区庞大

安装:pip install flask

二、第一个 Flask 应用

fromflaskimportFlask app=Flask(__name__)@app.route("/")defhome():return"<h1>Hello, Flask!</h1>"if__name__=="__main__":app.run(debug=True)# 启动,访问 http://127.0.0.1:5000

三、路由与参数

fromflaskimportFlask app=Flask(__name__)# 普通路由@app.route("/about")defabout():return"关于页面"# 动态参数@app.route("/user/<name>")defuser(name):returnf"<h1>欢迎,{name}!</h1>"# 指定请求方法@app.route("/login",methods=["GET","POST"])deflogin():return"登录页面"if__name__=="__main__":app.run(debug=True)

四、模板渲染

模板让你在 HTML 中嵌入 Python 变量和逻辑(Jinja2 模板引擎):

fromflaskimportFlask,render_template app=Flask(__name__)@app.route("/")defhome():returnrender_template("index.html",title="首页",items=["Python","Flask","Web"])if__name__=="__main__":app.run(debug=True)

配套模板文件templates/index.html

<!DOCTYPEhtml><html><head><title>{{ title }}</title></head><body><h1>{{ title }}</h1><ul>{% for item in items %}<li>{{ item }}</li>{% endfor %}</ul></body></html>

五、处理表单数据

fromflaskimportFlask,request app=Flask(__name__)@app.route("/submit",methods=["POST"])defsubmit():name=request.form.get("name")email=request.form.get("email")returnf"收到:{name}{email})"if__name__=="__main__":app.run(debug=True)

六、JSON API

现代 Web 应用前后端分离,后端只需返回 JSON:

fromflaskimportFlask,jsonify,request app=Flask(__name__)users=[{"id":1,"name":"Alice"},{"id":2,"name":"Bob"}]@app.route("/api/users",methods=["GET"])defget_users():returnjsonify(users)@app.route("/api/users",methods=["POST"])defadd_user():data=request.get_json()new_id=max(u["id"]foruinusers)+1users.append({"id":new_id,"name":data.get("name")})returnjsonify(users[-1]),201if__name__=="__main__":app.run(debug=True)

七、实战:待办清单 Web 应用

综合运用所学知识,做一个简单的待办清单应用:

fromflaskimportFlask,render_template,request,redirect,url_for app=Flask(__name__)todos=[]# 内存存储,重启会清空@app.route("/")defindex():returnrender_template("todos.html",todos=todos)@app.route("/add",methods=["POST"])defadd():text=request.form.get("text","").strip()iftext:todos.append({"id":len(todos)+1,"text":text,"done":False})returnredirect(url_for("index"))@app.route("/done/<int:todo_id>")defdone(todo_id):fortintodos:ift["id"]==todo_id:t["done"]=Truereturnredirect(url_for("index"))if__name__=="__main__":app.run(debug=True)
<!-- templates/todos.html --><!DOCTYPEhtml><html><body><h1>待办清单</h1><formmethod="post"action="/add"><inputtype="text"name="text"placeholder="输入待办事项"><buttontype="submit">添加</button></form><ul>{% for t in todos %}<li>{{ "✅" if t.done else "⬜" }} {{ t.text }} {% if not t.done %}<ahref="/done/{{ t.id }}">完成</a>{% endif %}</li>{% endfor %}</ul></body></html>

总结

本篇介绍了 Flask 的路由、模板、表单处理和 JSON API,并用待办清单应用串联实战。下一篇将介绍调试与性能优化,为系列收官,敬请期待!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/20 13:16:25

LLM原理与Prompt工程⑥-零基础面试保姆级教程

第 17 章&#xff1a;上下文工程 Context Engineering17.1 从 Prompt 工程到上下文工程2025 年起&#xff0c;行业共识发生了一次升级&#xff1a;单条提示词写得再好&#xff0c;决定 Agent 成败的是"每一步喂进上下文窗口的全部信息"的动态管理——系统提示、工具定…

作者头像 李华
网站建设 2026/8/20 13:14:50

ClickStack MCP 服务器基准测试:故障排查准确率提升 18%

本文字数&#xff1a;8714&#xff1b;估计阅读时间&#xff1a;22 分钟作者&#xff1a;Brandon Pereira编者按&#xff1a; 本文译自 ClickHouse 原博客。 原文围绕「探讨 AI 代理在可观测性领域的结构化评估方法」展开。该测试量化了 MCP 协议在故障排查中的效能优势&#x…

作者头像 李华
网站建设 2026/8/20 13:11:08

AI驱动的无线电信号生成:多智能体系统如何重塑波形设计与优化

1. 项目概述&#xff1a;当AI学会“调频”&#xff0c;RadioMaster如何重塑无线电信号生成 最近在AI和无线通信的交叉领域&#xff0c;一个名为“RadioMaster”的项目引起了我的注意。它不是一个简单的信号发生器软件&#xff0c;而是一个旨在实现“自主无线电信号生成”的多智…

作者头像 李华
网站建设 2026/8/20 13:10:13

基于Spring Boot与Vue 3的田径训练管理全栈系统开发实战

最近在开发一个面向田径教练和运动员的训练管理工具时&#xff0c;深刻体会到从需求梳理到技术落地的复杂性。市面上通用的项目管理软件难以满足田径训练中诸如周期计划、技术动作分析、实时数据反馈等专业需求&#xff0c;而定制开发又常因技术选型不当或架构设计缺陷导致项目…

作者头像 李华