0

私の django サイトのすべてのユーザーが何をしているかを追跡したいと考えています。提供されたすべての HTML ページを保存することで、これを行いたいと考えています。これを行う最も簡単な方法は何ですか?現在、HTML を提供する前に HTML をファイルに保存するデコレータを作成することを検討していましたが、これにはすべてのビューにそのデコレータを追加する必要があり、理想的ではないようです。

4

3 に答える 3

3

クエリからいつでもhtmlを再生成できるため、ユーザーが行ったクエリを保存する方が良いと思います。次に、ここに従ってすべての受信リクエストを処理するミドルウェアを作成し、クエリをデータベースに保存できます。本当に html を保存したい場合は、process_response関数を使用して後で保存することができます。 ソース

于 2012-08-17T22:01:57.550 に答える
1

django シグナルを使用します。

シグナルは、request_finishedDjango が処理を終了したときに呼び出されHttpRequest、ページを返すすべてのビューの最後に発生します。ここで、応答のセットにアクセスしparamsて、ユーザーに表示される方法でページを生成するか、単に保存してresponse_objectからバッチ プロセスを実行してオフラインで視覚化できます。

信号のドキュメント

于 2012-08-17T22:19:58.840 に答える
0

サイトごとのキャッシュを実装してから、キャッシュにクエリを実行して統計を取得できます。ただし、他の人が投稿したように、ミドルウェアは理想的です。

ただし、ミドルウェアはすべてのリクエストで呼び出されることに注意してください。したがって、db 書き込みなどの I/O 負荷の高いタスクを実行している場合、サイトのパフォーマンスに悪影響を及ぼします。

于 2012-08-17T22:21:59.000 に答える