我刚刚开始研究 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”文件的物理位置。我应该把它放在我的应用程序文件夹中的什么地方。
此外,我希望表变量可用于 Controller 中的所有函数。 session.tables 是正确的方法吗?它只是一个搜索应用程序,因此没有用户登录。 对于访问该页面的所有用户,该表只需加载一次。 谢谢。
最佳答案
我认为 private 文件夹会是一个很好的地方。您可以通过以下方式获取绝对路径:
import os
fp = os.path.join(request.folder,'private','tables.pkl')
我会使用 cache如果文件不是每个用户唯一的,而不是 session 。
关于python - web2py:我应该在哪里存储私有(private)的、特定于应用程序的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4004794/