コンテキストプロセッサができることはすべてミドルウェアができそうです。コンテキストプロセッサのポイントは何ですか?彼らはちょうどミドルウェア - ライトですか?コンテキストプロセッサとdjangoのミドルウェア
答えて
コンテキストプロセッサを使用してテンプレートに余分なデータを提供します。ミドルウェアは、要求/応答オブジェクトをインターセプトし、いくつかの意味のある方法でそれらを変更する(または他の動作をトリガーする)ためのものです。
異なるコンテキストで異なるレベルのスタックで動作します。そのフレームワークのスタックを絶対に正式なものにするのは通常は難しいが、特にDjango処理のようなWebフレームワークは要求と応答だけである。はい。テンプレートをレンダリングするときに、context_userではなくcontext.userでrequest.userを使用できます。しかし、テンプレートでのみ使用される属性は、すべての要求に設定されることを望まないかもしれません。
また、デコレータはビューレベル操作のためにミドルウェアよりも柔軟性がありますが、ミドルウェアとは言い難いのはデコレータライトです。コンテキスト・プロセッサーを割り当てテンプレート・タグとして扱いたいが、それは自動的にロードされる。
ミドルウェアは、Djangoの要求/応答処理を低レベルでフックとして機能し、軽いです。フックは、要求、応答、ビュー、template_response、および例外処理に使用できます。フックは、ビューがそれを処理する前に要求を変更する必要があり、デバッグ目的の要求に関する情報を記録したり、ローカルを設定するためにクッキーをチェックしたりする必要があります。
続きを読むMiddlewareを参照してください。
コンテキストプロセッサはコンテキストを変更するだけです。コンテキストとは、テンプレートに渡される変数とのキー値マッピングです。コンテキストプロセッサは要求オブジェクトを引数として受け取り、コンテキストにマージされる項目の辞書を返します。コンテキストはビューごとにテンプレートにレンダリングされ、コンテキストプロセッサがマージするものはすべて貼り付けられます。すべてのテンプレートで利用可能なグローバルコンテキスト変数と考えることができます。
続きを読むContext Processorsを参照してください。
どちらも非常に書きやすく、目的があります。ここではミドルウェア、コンテキストは、典型的なDjangoの流れの中に収まるところを示した図である。
ジャンゴフローチャート
ユーザーは、ページ
リクエストはリクエストミドルウェアに到達した要求しますリクエストを操作または回答する可能性があります。
URLには関連性がありますURLを使って表示します。PY
ビューミドルウェアは、ビュー機能を
呼び出され
ビューは、すべてのモデルにモデル
を通じてアクセスデータをオプションで可能性があり、要求を操作したり、答えることができた、と呼ばれています-DBの対話はマネージャー経由で行われる
ビューは必要に応じて特殊なコンテキストを使用できる
コンテキストはレンダリングのためにテンプレートに渡されます
- 1. DjangoコンテキストプロセッサとURL引数
- 2. Turbogears2:djangoコンテキストプロセッサのアナログ
- 3. Djangoコンテキストプロセッサ用のオブジェクトを表示
- 4. django-sortingとdjango-pagination:ミドルウェアの注文
- 5. 画像を表示するDjangoコンテキストプロセッサ
- 6. ユーザー許可を確認するDjangoコンテキストプロセッサ
- 7. フォームでDjangoコンテキストプロセッサを使用する
- 8. Django flatpagesミドルウェア
- 9. djangoミドルウェアとprocess_requestとprocess_viewの違い
- 10. 投稿時にdjangoコンテキストプロセッサのフォームが表示されない
- 11. ContentNotRenderedError djangoミドルウェア使用中
- 12. Djangoコンテキストプロセッサはいつ適切に使用できますか?
- 13. Django:コンテキストプロセッサがログインページで実行されていませんか?
- 14. コンテキストプロセッサからのデータの「レイジーロード」
- 15. Djangoミドルウェア内のCookieを設定する
- 16. Django 1.10:ログインに必要なミドルウェアのリダイレクトループ
- 17. ミドルウェアとミドルウェアの配列の違いは?
- 18. Djangoコンテキストプロセッサで特定のユーザフィールドをオンザフライで入手できますか?
- 19. Django - ミドルウェアを追加できません
- 20. ミドルウェアからモデルにアクセスする - Django
- 21. Djangoモデルを使用したDjangoミドルウェアですか?
- 22. Django。自分のコンテキストプロセッサから変数が必要なのは、ユーザが認証されたときだけです
- 23. 反応確認ミドルウェアと還元型ミドルウェア
- 24. UrlRewriteミドルウェアとクライアントアプリケーション
- 25. Sails.jsミドルウェアとポリシー
- 26. ミドルウェアとSOA
- 27. Express.jsミドルウェアとブートストラップアプリケーション
- 28. アプリテンプレートでコンテキストプロセッサを有効にする
- 29. デコレータをコンテキストプロセッサに適用する
- 30. django cmsと既存のdjangoプロジェクトを統合するミドルウェアのエラーを取得する