4

我刚刚开始研究 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 是正确的方法吗?它只是一个搜索应用程序,因此没有用户登录。对于访问该页面的所有用户,该表只需加载一次。谢谢你。

4

1 回答 1

4

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

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

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

于 2010-10-23T20:25:12.287 回答