我正在python-flask中创建一个路由,该路由将作为rest api来注册用户。当我试图在POST方法中获取通过poster传递的json数据时,我得到错误TypeError:"NoneType"对象不可下标
邮递员的请求:http://127.0.0.1:5000/register
原始输入:{"用户名":"alok","密码":"1234"}
我的路线和功能:
@app.route('/register', methods=['GET', 'POST'])
def signup_user():
data = request.get_json()
return data['username']
据我所知,上述函数应返回:">alok">
但我得到错误:TypeError:"NoneType"对象不可下标
如有任何帮助,将不胜感激
我花了几个小时在互联网上,从flask官方网站上得到了答案
我在提出请求时并没有设置mimetype
如果mimetype不指示JSON(application/JSON,请参阅is_JSON(((,则返回None。
request.get_json((用于将数据解析为json实际语法为get_json(force=False, silent=False, cache=True)
参数
force–忽略mimetype并始终尝试解析JSON。
silent–使解析错误静音并返回None。
cache–存储解析后的JSON,以便为后续调用返回。
所以最后我把代码改成了
@app.route('/register', methods=['GET', 'POST'])
def signup_user():
data = request.get_json(force=True)
return data['username']
问题解决了。
将Content-Type : application/json
添加到Postneneneba API请求的头中。