Python 开发简单的 web API
Flask 是一个简单的 Python web 框架,使用它只用几行代码就可以实现一个小型 Python web 服务。
最近模型与前端整合的时候刚好用到,遂记录一下它的用法。
一个简单的小例子
1 | from flask import Flask |
运行之后访问 5000
端口即可看到结果。
基本参数设置
设置 URL 及请求方式
Flask.route(rule, methods=["GET"])
rule
:指定的 URL。methods
:允许的请求方式,默认只响应GET
请求。
解析 GET 请求参数
解析 GET 参数有两种方式,第二种较为灵活,更推荐第二种使用方式。
第一种:变量转换
1 |
|
1 |
|
目前支持的转换类型有 string
,int
与 float
等。使用局限性较大。
第二种:从 URL 中解析
1 | from flask import Flask, request |
解析 POST 请求参数
1 | from flask import Flask, request, jsonify |
返回 json 数据
除了直接使用 Python 内置的 dict 构建 json 格式数据返回之外,还可以使用 flask.jsonify
返回 json 类数据。1
2
3
4
5
6
7
8
9
10
11
12
13from flask import Flask, request, jsonify
app = Flask(__name__)
def compute():
a = request.args.get("a")
b = request.args.get("b")
res = int(a) + int(b)
return jsonify(a=a, b=b, res=res)
# 或者
# return jsonify({"a": a, "b": b, "res": res})
配置链接与端口
1 | app.run(host="localhost", port=5000, debug=True) |
host
设置为 0.0.0.0
可使用外网访问。
当然,Flask
可以实现标准的 RESTful API,也能实现更复杂的功能,如捕获异常等,甚至可以真正的与数据库打通构建更复杂的功能,但这已超出了本文的范围,有需要请移步 Flask User’s Guide。