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は正しい方法ですか?これは単なる検索アプリであるため、ユーザーログインはありません。テーブルは、ページにアクセスするすべてのユーザーに対して1回だけロードする必要があります。ありがとうございました。

4

1 に答える 1

4

プライベートフォルダはこれに適した場所だと思います。次の方法で絶対パスを取得できます。

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

ファイルがユーザーごとに一意でない場合は、セッションの代わりに キャッシュを使用します。

于 2010-10-23T20:25:12.287 に答える