DjangoのCBV

DjangoのCBV
CBVとFBV:私たちが学んできたように、Djangoのビュー機能が書かれた2件の書き込みがあります。CBV書くためのクラスの利用を促進し、FBVはする関数を使用して
記述します。もちろん、コードの行を繰り返すために、より多くの関係者はCBVをお勧めします。
CBVを書くとき、クラスのクラスビューを書き込んだ後、URLにas_view()関数のクラスを呼び出して、いつものように長いコールアップなどと考えていた
と、している意味を理解していません。もちろん、FBV機能を直接実行することができます。今日、私たちは、ソースコードのCBVの方法を見てみましょう。
PyCharmでのソースコードにAs_viewは、それがクラスメソッドであることがわかりました。

特定のコードを省略

デフas_view(CLS、** initkwargs):

要求 - 応答手順メイン・エントリ・ポイントであります

...
DEFビュー(要求、* argsを、** kwargsからの):
...
リターンself.dispatch(要求、* argsを、** kwargsから)
...
ビューを返す
内部使用の閉鎖のためにそれを見ることができ、ビューを返さ機能、およびビュー機能は、発送方法を返されました。その後に続く
発送方法。

このコードは長くはありません

デフ派遣(自己、要求、* argsを、** kwargsから):

メソッドが存在しない場合は、正しいアプローチを探してみてください、エラーハンドリング

この方法は、要求リストやエラーハンドラを許可しない場合。

self.http_method_namesでrequest.method.lower IF():
ハンドラ= GETATTR(セルフ、request.method.lower()、self.http_method_not_allowed)
他:
ハンドラ= self.http_method_not_allowed
(* argsを、** kwargsからのリクエスト、)ハンドラを返します
request.method.lowerは()リスト内にある、このリストはのビューにあることがわかる分析
[「get」がhttp_method_names =「 '、ポスト」、「置く」、「パッチ」、「削除」 ヘッド「」オプション、 『トレース』]
リストかの方法は、対応する自己を取り除きます。そうでない場合、また、例外ハンドラを入力してください。これはまた、CBV説明し
、重複の関数名とHTTPメソッド高いです。GETATTRの使用を注意してください。
これはほとんど終わりました。Tidyの:
as_view() - >表示() - >
派遣() 主に反射原理を使用しています。URLマッピング原則(推測)についての。
概要:要求ディスパッチプロセスを入力し、反射型見出さGET /ポストなどに、この方法はバック対応するコンテンツを返し
ディスパッチ、ディスパッチおよび内容物は、次いで、要求者に返されます。
言葉の後:メソッドは、カスタムクラスの発送方法で実装することができ、その後、親クラスで呼び出します。この前に特定の操作または後に達成することができます
作品を。

おすすめ

転載: www.cnblogs.com/abdm-989/p/11729557.html