晚上好,
我在让flask-restful为我工作时遇到了一些严重的问题,这应该是非常简单的,而且已经是过去的事情了,但我正在尝试以不同的格式加载我的库,并且我总是遇到这个错误。
我是python的新手,所以我确信我犯了一些简单的错误。
我将基于这个骨架https://github.com/imwilsonxu/fbone构建我的结构并加载动态内容
基本信息是在我的扩展文件中定义的
from flask.ext import restful
api= restful.Api()然后在我的app.py文件中,我这样做
app = Flask(app_name, instance_path=INSTANCE_FOLDER_PATH, instance_relative_config=True)
configure_app(app, config)
configure_blueprints(app, blueprints)
configure_extensions(app)
def configure_extensions(app):
# Flask-restful
api.init_app(app)最后,在给定的蓝图中,我导入了api并尝试使用hello world示例
from sandbox.extensions import api
class HelloWorld(restful.Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')这就是我得到的错误。
AttributeError:“”Api“”对象没有属性“”endpoints“”
任何帮助都将不胜感激。
发布于 2013-09-20 03:34:21
出现此错误的原因是,在api对象引用Flask应用程序的有效实例之前,您正在尝试将flask-restful资源添加到api对象。
解决此问题的一种方法是将所有add_resource调用包装在一个单独的函数中,然后在应用程序和扩展初始化后调用此函数。
在你的蓝图里-
from sandbox.extensions import api
class HelloWorld(restful.Resource):
def get(self):
return {'hello': 'world'}
def add_resources_to_helloworld():
""" add all resources for helloworld blueprint """
api.add_resource(HelloWorld, '/')在app.py中
def configure_extensions(app):
# initialize api object with Flask app
api.init_app(app)
# add all resources for helloworld blueprint
add_resources_to_helloworld()这将确保资源仅在api对象引用初始化的Flask应用程序后才会添加到您的应用程序中。在调用init_app(app)之后。
https://stackoverflow.com/questions/16577091
复制相似问题