2017-01-07 5 views
0

Я пытаюсь выполнить документацию, подтверждающую флягу, и попытался запустить следующий код.flask-restful: Запрашиваемый URL-адрес не найден на сервере

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 вручную, пожалуйста, проверьте правильность написания и повторите попытку.» , Что я делаю неправильно с кодом. Пожалуйста помоги.

+0

Запуск ваш код один на один результат с '127.0.0.1 - - [07/Jan/2017 12:12:17] "GET/todo1 HTTP/1.1" 500'. В любом случае, я предполагаю, что вы определили в своем реальном коде 'todos' коллекции с некоторыми данными. Можете ли вы показать свою трассировку при получении ошибки? –

ответ

1

Проблема в том, как вы определяете маршрут URL для своего ресурса. Прямо сейчас вы пытаетесь получить к нему доступ через http://127.0.0.1:5000/todo1, но вы определили TodoSimple для обслуживания запросов, отправленных на http://127.0.0.1:5000/1. Я бы рекомендовал, чтобы изменить код STH как ниже

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

, а затем попытаться получить к нему доступ через GET http://127.0.0.1:5000/todo/1

+0

Не полезно. Все та же проблема !! –

+0

hm, работает для меня, можете ли вы отредактировать вопрос с изменениями, которые я предложил? – mic4ael

+0

Теперь он работает. Проблема не была, когда я перезапустил свой компьютер. Ваша помощь приветствуется. Благодаря!! –