2016-07-19 15 views
0

私は他の青写真に適したパターンで青写真として安静を使用しようとしています。大規模なアプリケーションで青写真として穏やかなフラスコを使用

├── app 
│   ├── __init__.py 
│   ├── api 
│   │   ├── __init__.py 
│   │   └── routes.py 
│   ├── main 
│   │   ├── __init__.py 
│   │   ├── forms.py 
│   │   └── views.py 
│   └── templates 
│    ├── base.html 
│    └── home.html 
├── config.py 
├── manage.py 
└── requirements.txt 

__init__.pyを

フォルダ構造:私は私のプロジェクトのセットアップが

私は、次のエラーメッセージが表示されます

AttributeError: 'Blueprint' object has no attribute 'add_resource'

を次のエラーメッセージ

を次のようになり得続けます

私が間違っているのは何

from flask_restful import Resource 
from . import api 

class TodoItem(Resource): 
    def get(self, id): 
     return {'task': 'Say "Hello, World!"'} 

api.add_resource(TodoItem, '/todos/<int:id>') 

routes.py/__ init__.py

from flask import Blueprint 

api = Blueprint('api', __name__) 

from . import routes 

API

from flask import Flask from flask_restful import Api from flask_bootstrap import Bootstrap from config import config bootstrap = Bootstrap() api = Api() def create_app(config_name): app = Flask(__name__) app.config.from_object(config[config_name]) config[config_name].init_app(app) bootstrap.init_app(app) api.init_app(app) from .main import main as main_blueprint from .api import api as api_blueprint app.register_blueprint(main_blueprint) app.register_blueprint(api_blueprint) return app 

API/??

+1

変数と 'api'という名前のパッケージがあります。私はそれがあなたを上回っていると思う。あなたは '__init __。py'の' api'インスタンスではなく、 'api/__ init __。py'から' api'青写真をインポートしています。 – dirn

答えて

0

apiという名前の青写真の名前と、のオブジェクト(flask_restful)を使用しているため、問題が発生しています。 routes.pyでは、apiapi/__init__.pyから明示的にインポートしています。これはBlueprintオブジェクトです。 add_resourceBlueprintオブジェクトに呼び出すことはできず、flask_restfulApiオブジェクトにのみ呼び出すことはできません。あなたは正しいオブジェクトをインポートすることがあります

from .. import api 

:あなたがあなたのインポートを変更した場合

。このような混乱を避けるために、青写真の名前を変更することをお勧めします。

+0

ありがとう、それはインポートエラーを修正しましたが、私は/ todos/1に行くと404になります – CraigH

関連する問題