十六、【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 应用。

相关推荐
basketball61627 分钟前
Python torchvision.transforms 下常用图像处理方法
开发语言·图像处理·python
兔子蟹子31 分钟前
Java集合框架解析
java·windows·python
宁酱醇35 分钟前
各种各样的bug合集
开发语言·笔记·python·gitlab·bug
啊吧怪不啊吧42 分钟前
Linux常见指令介绍下(入门级)
linux·开发语言·centos
谷晓光43 分钟前
Python 中 `r` 前缀:字符串处理的“防转义利器”
开发语言·python
姚毛毛44 分钟前
Windows上,10分钟构建一个本地知识库
python·ai·rag
Tiger Z1 小时前
R 语言科研绘图第 41 期 --- 桑基图-基础
开发语言·r语言·贴图
站大爷IP1 小时前
Python ZIP文件操作全解析:从基础压缩到高级技巧
python
chuxinweihui1 小时前
数据结构——二叉树,堆
c语言·开发语言·数据结构·学习·算法·链表
陈大大陈1 小时前
基于 C++ 的用户认证系统开发:从注册登录到Redis 缓存优化
java·linux·开发语言·数据结构·c++·算法·缓存