2013-05-16 70 views
1

晚上好,Python的瓶的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並嘗試在那裏你好世界的例子

from sandbox.extensions import api 

class HelloWorld(restful.Resource): 
def get(self): 
    return {'hello': 'world'} 

api.add_resource(HelloWorld, '/') 

這是我得到的錯誤。

AttributeError的: 'API' 對象有沒有屬性 '端點'

任何幫助,將不勝感激。

+1

我不認爲你已經發布了你的所有代碼......你在哪裏參考端點? – Nix

回答

3

你得到這個錯誤的原因是因爲你試圖在api對象引用Flask應用程序的一個有效實例之前添加瓶頸資源。

解決此問題的一種方法是將所有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對象具有參考的初始化瓶的應用程序,即只有經過。在init_app(app)被調用後。

相關問題