有一个非常简单的需求:编写一个 HTTP接口,使用 POST 方式发送一个 JSON 字符串,接口里面读取发送上来的参数,对其中某个参数进行处理,并返回。
如果我们使用 Flask 来开发这个接口,那么代码是这样的:
from flask import Flask, request
app = Flask(__name__)
@app.route('/insert', methods=['POST'])
def insert():
info = request.json
name = info['name']
age = info['age']
age_after_10_years = age + 10
msg = f'此人名叫:{name},10年后,此人年龄:{age_after_10_years}'
return {'success': True, 'msg': msg}
代码看起来已经很简洁了。我们用requests
发个请求看看效果,如下图所示:
看起来没什么问题。
现在,我搞点破坏,把age
字段改成字符串,再运行一下:
不出所料,报错了。
现在我们把age
字段改回数字,但是直接移除name
字段:
又报错了。
为了防止用户不按规矩提交数据,我们必需在接口里面做好各种异常数据的判断。于是增加判断以后的代码变得复杂了:
@app.route('/insert', methods=['POST'])
def insert():
info = request.json
name = info.get('name', '')
if not name:
return {'success': False, 'msg': &#