2

ハイチの Todos の 1 つに従って、web2py でカスタム エラー ページのデコレータを実装しようとしています。参照 - http://web2py.com/AlterEgo/default/show/75

コントローラーにインポートしてデコレーターを適切に配置できるように、モジュールとして /modules ディレクトリに保持しようとしています。

エラー処理デコレータを /modules/onerror.py として保持しています

コントローラからこのようにインポートしています(or.py)-

exec('from applications.%s.modules.onerror import onerror as onerror'
                                                       % request.application)

HTTP オブジェクトは onerror.py で利用できなかったので、私は -

from gluon.http import *

しかし、次に、次の行のように、リクエスト オブジェクトもデコレータで使用できないことを再認識しました -

filename=os.path.join(request.folder,'views/errors/error%i.html'%status)

いくつか疑問があります -

  1. /modules ディレクトリは、そのような再利用可能なコンポーネントを保持するのに適した場所ですか?

  2. /modulesディレクトリのモジュールは、新しいweb2pyインスタンスが作成されると自動的にロードされますか? もしそうなら、どうすればコントローラーでそれらにアクセスできますか?

  3. コントローラからこのデコレータにリクエスト オブジェクトを渡す方法はありますか? ヒントは大歓迎です。

現在の onerror.py - http://paste.pocoo.org/show/186165/ コントローラーで使用しようとしている方法 - http://paste.pocoo.org/show/186167/

自明ではない方法でそれを行っている場合はお知らせください。

4

1 に答える 1