Flask 是一个基于 Python 的轻量级 Web 应用框架,由 Armin Ronacher 于 2010 年开发。
它以简洁、灵活、可扩展著称,被称为“微框架(microframework)” ,核心精简但功能强大,可通过插件轻松扩展。
Flask 是 Web 应用、RESTful API、后端接口服务等 Python 项目的首选框架之一。
安装 :
pip install flask常见应用场景:
(1)快速开发 Web 网站:构建个人网站或公司官网原型。
(2)RESTful API 服务:为前端或移动端提供数据接口。
(3)AI/机器学习部署:封装模型预测接口,提供 HTTP 调用服务。
(4)教学与实验项目:验证 HTTP 请求与服务端逻辑。
(5)轻量级后端系统:中小型应用的后台管理与任务调度。
◆ ◆ ◆
核心概念
1、微框架(Micro Framework)
Flask 本身不强制使用数据库、模板引擎或身份验证系统。
它仅提供核心功能(路由、请求处理、模板渲染等),其余部分由开发者按需添加插件(如 SQLAlchemy、Flask-Login、Flask-RESTful)。
2、路由(Routing)
使用装饰器 @app.route() 定义 URL 与函数的对应关系。
3、请求与响应(Request / Response)
通过 flask.request 获取客户端数据,通过 return 或 flask.Response 返回结果。
4、模板系统(Jinja2)
Flask 内置支持 Jinja2 模板语言,可动态生成 HTML 页面。
5、开发服务器与调试模式
自带轻量服务器,可通过 debug=True 实现自动重载与错误追踪。
◆ ◆ ◆
应用举例
例 1:最简 Web 服务
app.run()运行后访问 http://127.0.0.1:5000/ 即可看到输出。
例 2:动态路由与变量
app.run(debug=True)访问 /user/Alice 将显示 “欢迎你,Alice!”
例 3:GET 与 POST 请求
app.run(debug=True)例 4:JSON 接口(API)
app.run(debug=True)向 /api/sum 发送 JSON:{"a":2,"b":3} → 返回 {"result":5}。
例 5:模板渲染
目录结构:
└── hello.htmlhello.html 内容:
html>app.py:
app.run(debug=True)访问 /hi/Tom → 页面显示 “Hello, Tom!”。
◆ ◆ ◆
常用函数与类速览
Flask(app_name)
创建 Flask 应用对象。
参数:
app_name:模块名(通常为 __name__)。
返回:Flask 应用实例。
Flask.run(host='127.0.0.1', port=5000, debug=False)
启动开发服务器。
参数:
host:主机地址(默认本地)。
port:端口号(默认 5000)。
debug:是否启用调试模式(True 支持热重载)。
返回:无(启动阻塞型服务)。
@app.route(rule, methods=['GET'])
定义路由规则。
参数:
rule:URL 路径字符串。
methods:允许的 HTTP 方法(默认 ['GET'])。
返回:装饰器函数。
flask.request
请求上下文对象,封装了 HTTP 请求信息。
常用属性:
request.method:请求方法(GET / POST)。
request.args:URL 参数(字典)。
request.form:表单数据(字典)。
request.get_json():获取 JSON 请求体。
返回:请求对象。
flask.jsonify(*args, **kwargs)
将数据转换为 JSON 响应。
参数:
args / kwargs:任意可序列化的对象。
返回:Response 对象(MIME 类型为 application/json)。
flask.render_template(template_name, **context)
渲染模板文件。
参数:
template_name:模板文件名(在 templates/ 下)。
context:模板变量。
返回:HTML 字符串。
flask.redirect(location)
执行页面重定向。
参数:
location:跳转的 URL。
返回:重定向响应对象。
flask.url_for(endpoint, **values)
根据函数名生成对应的 URL。
参数:
endpoint:视图函数名。
values:动态路径变量。
返回:URL 字符串。
小结
Flask 是 Python 生态中最灵活、最简洁的 Web 框架之一。
它以极低的学习成本实现 Web 开发的全部基础能力,并能与 SQLAlchemy、Jinja2、Werkzeug 等组件无缝协作。
![]()
“点赞有美意,赞赏是鼓励”
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.