烧瓶坏请求错误400

时间:2017-11-26 23:10:36

标签: python json flask

我是Flask开发的新手。下面是我现在关注的教程系列的请求。我使用Postman发布帖子请求,如下所示。但是当它运行时,我会显示一个错误控制台:

  

浏览器(或代理)发送了此服务器无法

的请求
 `from flask import Flask, jsonify, abort, make_response, request

    app = Flask(__name__)

    tasks = [
        {
            'id': 1,
            'title': u'Buy groceries',
            'description': u'Milk, Bread, Pizza, Fruit',
            'done': False
        },
        {
            'id':2,
            'title':u'Learn Python',
            'description': u'Need to find a good Python tutorial on the web',
            'done': False
        }
    ]

    @app.route('/todo/api/v1.0/tasks', methods=['POST'])
    def create_task():
        if not request.json or not 'title' in request.json:
            abort(400)
        task = {
            'id': request.json['task']['id'],
            'title': request.json['task']['title'],
            'description': request.json['task']['description'],
            'done': False
        }
        print(request.json)
        tasks.append(task)
        return jsonify({'task': task}), 201


    if __name__ == '__main__':
        app.run(debug=True)`

如果您能帮我理解错误原因,我将很高兴。 json请求是:

{
  "task": {
        "id": 3,
        "title": "Read a book",
        "description": "",
        "done": false
  }
}

1 个答案:

答案 0 :(得分:1)

我相信这条线路失败了:

    if not request.json or not 'title' in request.json:
        abort(400)

'title'位于'task'下,因此您可能需要以下内容:

if not request.json or 'task' not in request.json or 'title' not in request.json['task']:
    abort(400)