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

目录

前言

[Flask 基础概念](#Flask 基础概念)

[安装 Flask](#安装 Flask)

[示例:创建一个 Flask Web 应用](#示例:创建一个 Flask Web 应用)

[运行 Flask 应用](#运行 Flask 应用)

更复杂的例子

测试新功能


前言

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

Flask 基础概念

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

安装 Flask

在你的 Python 环境中安装 Flask:

bash 复制代码
pip install Flask

示例:创建一个 Flask Web 应用

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

python 复制代码
from flask import Flask

app = Flask(__name__)

@app.route('/')
def index():
    return 'Hello, World!'

if __name__ == '__main__':
    app.run(debug=True)

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

运行 Flask 应用

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

bash 复制代码
python app.py

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

bash 复制代码
 * 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 如下:

python 复制代码
from flask import Flask, request

app = 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 应用。

相关推荐
默_笙13 小时前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!13 小时前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_4260039613 小时前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫13 小时前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技13 小时前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读14 小时前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时14 小时前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车15 小时前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊15 小时前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd12315 小时前
2026年第38周GitHub趋势周报
python·科技·github