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

相关推荐
dialect_3 小时前
KMP算法
开发语言·c++·算法
总要学点什么4 小时前
第89篇:三维特效-螺旋圆效果——让螺旋臂卷起一圈圈外扩的涟漪
开发语言·javascript·ecmascript·webgl·cesium·空间分析·1024程序员节
前端精髓4 小时前
结构化输出with_structured_output(抽卡)
python·langchain
尹人入圣5 小时前
目前热门的IP驱动产业新场景新工具
网络·python·网络协议·tcp/ip
开开心心_Every5 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
chenbingjie_c5 小时前
C++ 多态完全指南:从虚函数重写到虚函数表原理
开发语言·c++
Nuanyt6 小时前
Agent 学习笔记(下篇三):上线工程、进阶选择与操作界面(Stage 7 / 7.5 / 8 + 延伸路线)
笔记·python·学习·memory·aiagent·harness
吴卫斌6 小时前
定投ETF实战指南(四):行业/主题ETF——定投的“进攻端“
开发语言·python·股票·量化
2601_967987376 小时前
Python——入门级(定义功能def函数)
python·函数·可变参数·默认参数·关键字参数
超级架构师7 小时前
PRAXO-CORE 2.5.0:用 conformance 和显式边界构建 Go Agent 框架
开发语言·人工智能·后端·golang·ai编程·智能体框架·praxo-core