2010-10-23 14 views
4

我剛開始使用web2py。我個人覺得比Django更容易學習。web2py:我應該在哪裏存儲專用的,特定於應用程序的文件?

我的查詢是我必須在應用程序啓動時加載文件。它是一個醃製的散列表。我應該在哪裏存儲這個文件,使系統能夠看到它

我的代碼是:

import cPickle as pickle 
def index(): 
    """ 
    Load the file into memory and message the number of entries 
    """ 
    f = open('tables.pkl','rb') 
    session.tables = pickle.load(f) 
    f.close() 
    terms = len(session.tables.keys()) 
    message = 'The total entries in table = ' + str(terms) 
    return dict(message=message) 

正如你所看到的,我已經把代碼索引()在啓動時加載它。目前我正在使用'tables.pkl'文件的物理位置的絕對路徑。我應該把它放在我的應用程序文件夾中。

此外,我希望表變量可用於控制器中的所有功能。 session.tables是否正確?它只是一個搜索應用程序,所以沒有用戶登錄。 對於訪問頁面的所有用戶,該表只能加載一次。 謝謝。

+1

只是和添加:我已經寫入加載表的代碼並將其放在模型目錄中。它現在在啓動時加載並可在全球範圍內使用。 – Sudeep 2010-10-24 12:09:51

回答

4

我認爲私人文件夾將是一個很好的地方。你可以使用絕對路徑:

import os 
fp = os.path.join(request.folder,'private','tables.pkl')  

我會用cache,而不是會議,如果該文件是不是每個用戶唯一的。

+0

。它給我一個錯誤「>從gluon.main import abspath> ImportError:無法導入名稱abspath – Sudeep 2010-10-24 07:59:44

+0

對不起,我試圖得到幻想。 – 2010-10-24 15:14:14

相關問題