2017-04-02 1 views
1
from flask import g, request, session, render_template, flash, redirect, url_for 
from flask import current_app as app 

@app.route('/') 
def home(): 
    return 'this works' 


from flask_restful import Resource, Api 
from app.extensions import api 


class HelloWorld(Resource): 
    def get(self): 
     return {'Hello': 'World'} 

api.add_resource(HelloWorld, '/test') # Getting a 404 for this route on http://127.0.0.1:5000/test 

확장이 API를 변수 설정 : 내가 API 리소스에 액세스하려고 (404)을받을 이유가 알아낼 수 없습니다(404)에 접속 자원 플라스크-평안한

api = Api() 
api.init_app(app) 

를?

+1

매개 변수를 사용해 보셨습니까? – pvg

+0

또는 매개 변수없이 add_resource와 일치하는 예제를 수행하면 예상대로 작동하는 것으로 보입니다. https://pastebin.com/yJy7F2At – pvg

+0

죄송합니다. 필자는 복잡한 코드를 문서에서 일부 대체하고 매개 변수를 잊어 버렸습니다. 내 코드를 업데이트했지만 문제는 여전히 지속됩니다. – ovg

답변

2

좋아, 문제는 아래의 순서가 잘못되었다는 것 같습니다. api 초기화 전에 리소스를 추가해야합니다.

api = Api() 
api.init_app(app) 
api.add_resource(HelloWorld, '/') 

수정 :

api = Api() 
api.add_resource(HelloWorld, '/') 
api.init_app(app) 

이 아주 이상한 주어진다 예를 들어, 그 SQLAlchemy가 사용되기 전에 init_app를 호출해야합니다 ...

+0

당신은'app = Flask (__ name__) api = Api (app) api.add_resource (HelloWorld, '/ test')'와 같이 할 수있었습니다. – Pradeepb

+0

응용 프로그램 팩토리를 사용하고 있기 때문에 제 코드에서는 서로 옆에 있지 않습니다. – ovg

+1

또한 앱 팩토리를 사용하고이 답변을 찾을 때까지 내 노트북을 처벌하려고했습니다. 감사!! – Ominus