Skip to content

Flask App & Request Context API

Flask 是轻量级 WSGI 框架,通过应用与请求上下文管理路由、请求与响应。

1 class · 8 methods

Flask Core

8 methods

Flask 应用创建、路由、请求数据访问与响应生成的核心 API。

Flask(__name__)

创建 Flask 应用实例,以模块名定位资源路径。

Returns

Flask — 应用实例

Example

flask
from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Hello, Flask"
@app.route(path)

将函数注册为路由,可指定允许的 HTTP 方法。

Parameters

NameTypeDescription
pathstrURL 路径规则
methodslist[str]允许的方法,如 ['GET','POST']

Returns

装饰器 — 注册后的视图函数

Example

flask
from flask import Flask, request

app = Flask(__name__)

@app.route("/echo", methods=["POST"])
def echo():
    return request.get_json()
request.args / request.form

访问 URL 查询参数(args)或表单提交数据(form),均为类字典对象。

Returns

ImmutableMultiDict — 请求参数字典

Example

flask
from flask import Flask, request

app = Flask(__name__)

@app.route("/search")
def search():
    q = request.args.get("q", "")
    return f"查询: {q}"
request.json

解析请求体中的 JSON 数据,失败时返回 None 或抛错。

Returns

dict | list | None — 解析后的 JSON

Example

flask
from flask import Flask, request

app = Flask(__name__)

@app.route("/api", methods=["POST"])
def api():
    data = request.get_json()
    return {"received": data}
render_template(template, **ctx)

使用 Jinja2 渲染模板并返回字符串。

Parameters

NameTypeDescription
templatestrtemplates 目录下的模板名
contextdict注入模板的变量

Returns

str — 渲染后的 HTML 字符串

Example

flask
from flask import Flask, render_template

app = Flask(__name__)

@app.route("/hi/<name>")
def hi(name):
    return render_template("hello.html", name=name)
jsonify(**kwargs)

将字典或关键字参数转为 JSON 响应,并设置正确的 Content-Type。

Parameters

NameTypeDescription
kwargsdict需序列化为 JSON 的键值对

Returns

Response — JSON 格式的响应对象

Example

flask
from flask import Flask, jsonify

app = Flask(__name__)

@app.route("/status")
def status():
    return jsonify(ok=True, code=200, msg="running")
abort(status_code)

立即中止请求并返回指定状态码的错误响应。

Parameters

NameTypeDescription
status_codeintHTTP 状态码,如 404

Returns

无返回 — 抛出 HTTPException 终止请求

Example

flask
from flask import Flask, abort

app = Flask(__name__)

@app.route("/user/<int:uid>")
def user(uid):
    if uid < 1:
        abort(404)
    return {"id": uid}
app.run(host, port, debug)

启动内置开发服务器,debug 模式启用热重载与调试。

Parameters

NameTypeDescription
hoststr监听地址,默认 127.0.0.1
portint监听端口,默认 5000
debugbool是否开启调试模式

Returns

None — 启动阻塞式服务器

Example

flask
from flask import Flask

app = Flask(__name__)

@app.route("/")
def home():
    return "Hi"

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=5000, debug=True)