3

私はいくつかのプロジェクトで Flask を使用しましたが、restul API を作成するときにフラスコの安静なパッケージを使用したことがないので、試してみるべきだと思いました。

しかし、理解できない奇妙なエラーに遭遇しました。API はまったく機能しません。エラーメッセージは言う

{
    "message": "Not Found. You have requested this URI [/api/v1.0/items] but did you mean /api/v1.0/items ?", 
    "status": 404
}

run.py

from my_project import app

if __name__ == '__main__':
    app.run(host=0.0.0.0, debug=app.config['DEBUG'])

my_project / _init_.py

from flask import Flask

app = Flask(__name__)

from my_project.base import blueprint as BaseBluePrint
from my_project.api import blueprint as ApiBluePrint
app.register_blueprint(BaseBluePrint)
app.register_blueprint(ApiBluePrint, url_prefix='/api/v1.0')

my_project/api / _init_.py

from flask import Blueprint
from flask.ext import restful

blueprint = Blueprint('api', __name__)
api = restful.Api(blueprint)

class ItemList(restful.Resource):
    def get(self):
        return false


api.add_resource(ItemList, '/items', endpoint='items')

何が原因でしょうか? 私が何をしても、エラーは残ります。from Flaskを見るとurl_map、そこに私のルートが見えます - そしてそれはうまく見えます. 設計図から離れて、すべてを 1 つのファイルに保存すると、機能します。Python v2.7 およびフラスコ レストフル v0.2.12 (Ubuntu Precise の pip からインストール)。

4

2 に答える 2

-1

末尾のスラッシュに関連する同様の問題がありました。たとえば、api.com/endpoint を定義し、api.com/endpoint/ にリクエストを送信していて、404 エラーが発生していました。

解決策は、次のようにして、Flask アプリケーションを末尾のスラッシュについて厳密にならないように構成することでした。app.url_map.strict_slashes = False

于 2019-01-25T11:20:49.580 に答える