我是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
}
}
答案 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)