【发布时间】:2016-07-19 02:26:13
【问题描述】:
我正在尝试以适用于其他蓝图的模式将 Flask restful 用作蓝图。我不断收到以下错误消息
我收到以下错误消息
AttributeError: 'Blueprint' 对象没有属性 'add_resource'
我的项目设置如下:
文件夹结构
├── 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
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/__init__.py
from flask import Blueprint
api = Blueprint('api', __name__)
from . import routes
api/routes.py
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>')
我做错了什么??
【问题讨论】:
-
你有一个变量和一个名为
api的包。我认为那会让你绊倒。您从api/__init__.py导入api蓝图,而不是__init__.py中的api实例。
标签: flask flask-restful