web2py:我应该在哪里存储特定于应用程序的私有文件?

时间:2010-10-23 15:48:49

标签: python web2py

我刚刚开始研究web2py。就个人而言,我发现它比Django更容易学习。

我的疑问是我必须在应用程序启动时加载文件。它是一个腌制哈希表。我应该在哪里存储此文件,以便系统能够看到它

我的代码是:

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) 

正如您所看到的,我已将代码放在index()中以在启动时加载它。目前我使用绝对路径到'tables.pkl'文件的物理位置。我应该把它放在我的应用程序文件夹中。

另外,我希望表变量可用于控制器中的所有函数。 session.tables是正确的方法吗?它只是一个搜索应用程序,因此没有用户登录。 对于访问该页面的所有用户,该表只需加载一次。 谢谢。

1 个答案:

答案 0 :(得分:4)

我认为私有文件夹是个好地方。您可以通过以下方式获得绝对路径:

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

如果文件不是每个用户唯一的话,我会使用cache而不是会话。