我正在尝试遵循flask-restful的文档并尝试运行以下代码。
from flask import Flask, request
from flask_restful import Resource, Api
app = Flask(__name__)
api = Api(app)
todos = {}
class TodoSimple(Resource):
def get(self, todo_id):
return {todo_id: todos[todo_id]}
def put(self, todo_id):
todos[todo_id] = request.form['data']
return {todo_id: todos[todo_id]}
api.add_resource(TodoSimple, '/<string:todo_id>')
if __name__ == '__main__':
app.run(debug=True)
但是当我尝试用&#34; http://127.0.0.1:5000/todo1&#34;它响应的消息&#34;在服务器上找不到请求的URL。如果您手动输入了URL,请检查拼写并重试。&#34;。我在代码中做错了什么请帮忙。
答案 0 :(得分:2)
问题在于您为资源定义URL路由的方式。您现在正尝试通过http://127.0.0.1:5000/todo1
访问它,但您已定义TodoSimple
来处理发送给http://127.0.0.1:5000/1
的请求。我建议将代码更改为......如下所示
api.add_resource(TodoSimple, '/todo/<int:todo_id>')
然后,尝试通过GET http://127.0.0.1:5000/todo/1