Python 第三方库:Flask(轻量级 Web 框架)

Flask 是一个基于 Python 的轻量级 Web 应用框架,由 Armin Ronacher 于 2010 年开发。

它以简洁、灵活、可扩展著称,被称为"微框架(microframework)" ,核心精简但功能强大,可通过插件轻松扩展。

Flask 是 Web 应用、RESTful API、后端接口服务等 Python 项目的首选框架之一。

安装:

nginx 复制代码
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 服务

python 复制代码
from flask import Flask
app = Flask(__name__)
@app.route("/")def home():    return "Hello, Flask!"
if __name__ == "__main__":    app.run()

运行后访问 http://127.0.0.1:5000/ 即可看到输出。

例 2:动态路由与变量

python 复制代码
from flask import Flask, request
app = Flask(__name__)
@app.route("/submit", methods=["GET", "POST"])def submit():    if request.method == "POST":        data = request.form.get("name")        return f"收到表单数据:{data}"    return '<form method="post"><input name="name"><input type="submit"></form>'
app.run(debug=True)

访问 /user/Alice 将显示 "欢迎你,Alice!"

例 3:GET 与 POST 请求

python 复制代码
from flask import Flask, request
app = Flask(__name__)
@app.route("/submit", methods=["GET", "POST"])def submit():    if request.method == "POST":        data = request.form.get("name")        return f"收到表单数据:{data}"    return '<form method="post"><input name="name"><input type="submit"></form>'
app.run(debug=True)

例 4:JSON 接口(API)

python 复制代码
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route("/api/sum", methods=["POST"])def calc_sum():    data = request.get_json()    result = data["a"] + data["b"]    return jsonify({"result": result})
app.run(debug=True)

向 /api/sum 发送 JSON:{"a":2,"b":3} → 返回 {"result":5}。

例 5:模板渲染

目录结构:

go 复制代码
app.pytemplates/ └── hello.html

hello.html 内容:

xml 复制代码
<!DOCTYPE html><html>  <body>    <h1>Hello, {{ name }}!</h1>  </body></html>

app.py

python 复制代码
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/hi/<name>")def hi(name):    return render_template("hello.html", name=name)
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 等组件无缝协作。

"点赞有美意,赞赏是鼓励"

相关推荐
2501_941111401 小时前
C++中的状态模式实战
开发语言·c++·算法
5***o5002 小时前
前端构建工具缓存清理,解决依赖问题
前端·缓存
q***72562 小时前
Spring Boot + Vue 全栈开发实战指南
vue.js·spring boot·后端
java干货2 小时前
Spring Boot 为什么“抛弃”了 spring.factories?
spring boot·python·spring
lcc1872 小时前
Vue Vue与VueComponent的关系
前端·vue.js
无敌最俊朗@2 小时前
Vue 3 概况
前端·javascript·vue.js
清晨细雨~2 小时前
SpringBoot整合EasyExcel实现Excel表头校验
spring boot·后端·excel
2501_941111822 小时前
使用Python进行网络设备自动配置
jvm·数据库·python
canonical_entropy2 小时前
API无缝升级方案:从推模式到拉模式的架构演进
后端·restful·graphql