リクエストがすでにユーザーに送信されているが、後でDBで処理できるように情報が残っている、中間層でのイベントまたは何らかの作業はありますか?
1406 次
2 に答える
3
おそらくすでに知っているように、リクエストを処理する 前に次のことを行うことができます。
リクエスト後の処理を (ミドルウェアを使用せずに) 行うには、完成したコールバックをリクエストに追加する必要があり ます。 request.Request.add_finished_callback
もちろん、完了したコールバックは 1 つのリクエストのスコープ内でのみ発生します。次の 2 つを組み合わせることで、すべてのリクエストを処理できます。
from pyramid.events import NewRequest
def do_something(request):
# do something here
pass
def setup_post_request(event):
event.request.add_finished_callback(do_something)
config.add_subscriber(setup_post_request, NewRequest)
于 2011-02-17T17:04:55.917 に答える
1
Pylons では、各コントローラーは定義可能なbeforeメソッドとafterメソッドを持つことができ、コントローラー メソッドが呼び出される前/後に呼び出されます。
コントローラー呼び出しを含む lib/base.py ファイルもあり、そこにカスタム コードを追加することもできますが、すべての要求で呼び出され、コードでエラーが発生すると危険になる可能性があります。
ピラミッドではわかりません。
カスタム ミドルウェアで何かを行う場合、リクエスト オブジェクトとレスポンス オブジェクトにはアクセスできますが、他の素材にはアクセスできません。理論的には、データベース設定などの .ini 構成を解析できますが、それが本当にアプリの一部である場合は、そこに固執します。
于 2011-02-16T00:45:38.250 に答える