2010-10-23 40 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

相关问题