2015-03-25 77 views
0

我有一個看起來像一個端點: api.add_resource(UserForm,'/app/user/form/<int:form_id>', endpoint='user_form')瓶:調用類,需要一個資源

我的窗體的樣子:

class UserForm(Resource): 
    def get(self, form_id): 
     # GET stuff here 
     return user_form_dictionary 

如果我有一個函數調用get_user_form(form_id)和我想要根據傳入的form_id參數從UserForm的get方法中獲取返回值。Flask中有一種方法允許某種方式在程序中調用UserForm的get方法嗎?

def get_user_form(form_id): 
    user_form_dictionary = # some way to call UserForm class 
    # user_form_dictionary will store return dictionary from 
    # user_form_dictionary, something like: {'a': 'blah', 'b': 'blah'} 

回答

0

我不知道是否有直接從您的應用程序中訪問窗體類的get方法的一種方式,即彈簧想到的唯一的事情就是調用網址爲資源,但我不不建議這樣做。

你有沒有使用燒瓶寧靜的延伸?如果是的話下面是基於有網站here

建議的中間項目結構在一個共同的模塊(這包含了將在整個應用程序中使用的功能)

共同\ util.py

def get_user_form(form_id): 
    # logic to return the form data 

然後在你的.py包含窗體類,進口依照該通訊模塊的util.py文件,然後做下面的

class UserForm(Resource): 
    def get(self, form_id): 
     user_form_dictionary = get_user_form(form_id) 

     # any additional logic. i try and keep it to a minimum as the function called 
     # would contain it. also this way maintanence is easier 

     return user_form_dictionary 

然後在導入公共模塊後,您的應用程序中的其他位置可以重複使用相同的功能。

def another_function(form_id): 
    user_form_dictionary = get_user_form(form_id) 
    # any additional logic. 
    # same rules as before 

    return user_form_dictionary 
相關問題