2017-04-02 7 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変数を設定しています404リソースフラスコ-RESTfulなアクセス

api = Api() 
api.init_app(app) 

APIリソースにアクセスしようとしたとき、私は404を取得し、なぜ私が把握することはできませんか?

+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

関連する問題