【问题标题】:flask-restful : The requested URL was not found on the serverflask-restful : 在服务器上找不到请求的 URL
【发布时间】:2017-01-07 08:00:24
【问题描述】:

我正在尝试遵循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)

但是当我尝试使用“http://127.0.0.1:5000/todo1” URL 运行它时,它会以消息“在服务器上找不到请求的 URL。如果您手动输入 URL,请检查您的拼写并重试。”。我对代码做错了什么。请帮忙。

【问题讨论】:

  • 使用127.0.0.1 - - [07/Jan/2017 12:12:17] "GET /todo1 HTTP/1.1" 500 一对一运行您的代码。无论如何,我假设您在真实代码todos 集合中定义了一些数据。您可以在收到错误时显示您的回溯吗?

标签: python flask-restful


【解决方案1】:

问题在于您为资源定义 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访问它

【讨论】:

  • 没有帮助。还是一样的问题!!
  • 嗯,对我有用,你能用我建议的更改来编辑问题吗?
  • 它现在可以工作了。当我重新启动我的电脑时问题就消失了。感谢您的帮助。谢谢!!
  • 您可以通过点赞我的回答来表示感谢;)
  • 我不拥有投票答案所需的阈值声誉。所以,下次一定会投票的:) !!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-09
相关资源
最近更新 更多