简体   繁体   中英

flask-restful : The requested URL was not found on the server

I am trying to follow the documentation of flask-restful and tried to run the following code.

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)

But when I tried to run it with " http://127.0.0.1:5000/todo1 " URL it responds with the message "The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.". What am I doing wrong with the code. Please help.

The problem is in the way you are defining url route for your resource. Right now you are trying to access it via http://127.0.0.1:5000/todo1 but you have defined TodoSimple to serve requests sent to http://127.0.0.1:5000/1 . I would recommend to change the code to sth like below

api.add_resource(TodoSimple, '/todo/<int:todo_id>')

and then, try to access it via GET http://127.0.0.1:5000/todo/1

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM