我刚刚开始研究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是正确的方法吗?它只是一个搜索应用程序,因此没有用户登录。 对于访问该页面的所有用户,该表只需加载一次。 谢谢。
答案 0 :(得分:4)
我认为私有文件夹是个好地方。您可以通过以下方式获得绝对路径:
import os
fp = os.path.join(request.folder,'private','tables.pkl')
如果文件不是每个用户唯一的话,我会使用cache而不是会话。