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

相关推荐
qq_4480111613 分钟前
C语言中的动态内存分配
c语言·开发语言·php
ctlover30 分钟前
Streamlit 框架
python
ι:1 小时前
MATLAB 与 Python 搭建无人机地面站:优势、劣势与选型逻辑
python·matlab·无人机
船厂电气自动化ai大模型1 小时前
AI大模型与数学 第32课 函数凹凸性与二阶导数:拐点求解、凹凸区间计算(10道二阶导数计算题)
数据结构·人工智能·python·深度学习·算法
汉字萌萌哒1 小时前
2024CSP-J入门级C++真题详解
开发语言·c++
arbboter1 小时前
【网络工具】NetProxy网络代理用户手册
开发语言·网络·c#·网络代理·网络异常·代理工具
jufeng13071 小时前
【系列:手搓自主 AI Agent:Hermes 架构原理剖析 · 第 7 篇】
python·ai agent·权限系统
梦想很大很大1 小时前
如果有一个本地优先的 Workflow 工具,你们团队会愿意用吗?
python·agent·workflow
用户8356290780512 小时前
Python 自动化 Word 文本框处理:创建、定位、填充内容与管理
后端·python
汉字萌萌哒2 小时前
2019CCF-CSP入门级C++试题解析
java·开发语言·c++