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.html

hello.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 等组件无缝协作。

打开网易新闻 查看精彩图片

点赞有美意,赞赏是鼓励