Flask Core
8 methodsFlask 应用创建、路由、请求数据访问与响应生成的核心 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
| Name | Type | Description |
|---|---|---|
| path | str | URL 路径规则 |
| methods | list[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
| Name | Type | Description |
|---|---|---|
| template | str | templates 目录下的模板名 |
| context | dict | 注入模板的变量 |
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
| Name | Type | Description |
|---|---|---|
| kwargs | dict | 需序列化为 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
| Name | Type | Description |
|---|---|---|
| status_code | int | HTTP 状态码,如 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
| Name | Type | Description |
|---|---|---|
| host | str | 监听地址,默认 127.0.0.1 |
| port | int | 监听端口,默认 5000 |
| debug | bool | 是否开启调试模式 |
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)