当前位置: 首页 > news >正文

十六、【Python】基础教程 - 【Flask】网络编程开发

目录

前言

Flask 基础概念

安装 Flask

示例:创建一个 Flask Web 应用

运行 Flask 应用

更复杂的例子

测试新功能


前言

Flask 是一个用 Python 编写的微型 Web 框架,它以简单性和灵活性著称,非常适合快速开发小型到中型的 Web 应用。Flask 不要求特定的项目结构或依赖关系,这使得我们可以根据自己的需求自由选择组件。

Flask 基础概念

  • 路由(Routing):定义 URL 路径和视图函数之间的映射。
  • 视图函数(View Functions):响应特定 URL 请求的函数。
  • 请求对象(Request Objects):包含客户端发送的请求信息。
  • 响应对象(Response Objects):用于构建返回给客户端的响应。
  • Jinja2 模板引擎:用于生成动态 HTML 页面。

安装 Flask

在你的 Python 环境中安装 Flask:

pip install Flask

示例:创建一个 Flask Web 应用

创建一个名为 app.py 的文件,并输入以下代码:

from flask import Flaskapp = Flask(__name__)@app.route('/')
def index():return 'Hello, World!'if __name__ == '__main__':app.run(debug=True)

这里我们定义了一个简单的路由 /,它关联到 index 函数,该函数返回一个字符串 "Hello, World!"。

运行 Flask 应用

在命令行中,转到包含 app.py 文件的目录,并运行:

python app.py

你将看到类似这样的输出:

 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)* Restarting with stat* Debugger is active!* Debugger PIN: 123-456-789

打开你的浏览器并访问 http://127.0.0.1:5000/,你应该能看到 "Hello, World!" 的页面。

更复杂的例子

让我们添加一些动态内容和参数处理。修改 app.py 如下:

from flask import Flask, requestapp = Flask(__name__)@app.route('/hello/<name>')
def hello_name(name):return f'Hello, {name}!'@app.route('/post', methods=['POST'])
def post_data():data = request.form['data']return f'Received POST data: {data}'if __name__ == '__main__':app.run(debug=True)

现在我们添加了一个带有参数的路由和一个处理 POST 请求的路由。

测试新功能

  • 访问 http://127.0.0.1:5000/hello/John,应显示 "Hello, John!"。
  • 使用 Postman 或类似的工具发送一个 POST 请求到 http://127.0.0.1:5000/post,并在 body 中包含 data 字段,应看到数据被正确接收并显示。

Flask 的灵活性和易用性使其成为 Python Web 开发的热门选择。通过结合 Jinja2 模板、数据库库(如 SQLAlchemy)和其他扩展,你可以构建出功能丰富且可维护的 Web 应用。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • SpringBoot可以同时处理多少请求?
  • WHAT - xmlhttprequest vs fetch vs wretch
  • YOLO系列:从yolov1至yolov8的进阶之路 持续更新中
  • 【数据结构】队列,你必须知道的内部原理!!!
  • 大数据Flink(一百零九):阿里云Flink的基本名称概念
  • 保障速度与安全合规的前提下,如何传文件到国外?
  • 【解压既玩】PS3模拟器v0.0.32+战神3+战神升天+各存档 整合包 ,完美不死机,没有BUG,旷世神作,强力推荐
  • AI编程工具合集整理优缺点
  • HarmonyOS Developer之生命周期
  • Java设计模式-单例模式最佳实践
  • 第26课 Scratch入门篇:乘坐公交车
  • 服务器CPU天梯图2024年8月,含EYPC/至强及E3/E5
  • 使用 Java Swing 创建一个最大公约数计算器 GUI 应用
  • 【Linux】输入输出重定向
  • vue3组件之间通讯
  • “寒冬”下的金三银四跳槽季来了,帮你客观分析一下局面
  • Docker 笔记(1):介绍、镜像、容器及其基本操作
  • Java IO学习笔记一
  • React 快速上手 - 06 容器组件、展示组件、操作组件
  • Spark in action on Kubernetes - Playground搭建与架构浅析
  • SQLServer之索引简介
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 强力优化Rancher k8s中国区的使用体验
  • 区块链分支循环
  • 容器服务kubernetes弹性伸缩高级用法
  • 适配iPhoneX、iPhoneXs、iPhoneXs Max、iPhoneXr 屏幕尺寸及安全区域
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 微信小程序填坑清单
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • Linux权限管理(week1_day5)--技术流ken
  • puppet连载22:define用法
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • ​ssh免密码登录设置及问题总结
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • (12)目标检测_SSD基于pytorch搭建代码
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (delphi11最新学习资料) Object Pascal 学习笔记---第13章第1节 (全局数据、栈和堆)
  • (TOJ2804)Even? Odd?
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (四)图像的%2线性拉伸
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转) 深度模型优化性能 调参
  • (转)关于多人操作数据的处理策略
  • (转)我也是一只IT小小鸟
  • .net core webapi 大文件上传到wwwroot文件夹
  • .net core 外观者设计模式 实现,多种支付选择
  • .NET Core 项目指定SDK版本
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET 使用 XPath 来读写 XML 文件
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试