DjangoのサプリメントCBVとFBVモード

DjangoはCBV追加とFBVのモード
FBVのモード--- :機能頻繁に使用されるため
CBVのモデル--- クラス
CBV URL 接続機能名が.as_viewを選択する()
クラスインデックス(views.Viewを):@
...
DEF dispath(セルフ、リクエスト、Argの*、** kwarg):
スーパー...
あなたはリクエスト処理のある種行う場合:単一のデコレータを
派遣:あなたが要求に対処した場合は、単一のデコレータ
CBVの:注デコレータを呼び出すためのモードをmethod_decorator
django.utils.decoratorsインポートmethod_decoratorのから
実行デーモン取得区別し、ポスト最初のパスの前に呼び出し元のビューの値にディスパッチ機能を治療する方法
例:
Djangoのインポートビューから
django.utils.decoratorsインポートmethod_decoratorから
デフアウター(FUNC):
:(要求、* argsを、** kwargsから)デフ内部
のプリント(request.method)
リターンFUNC(要求、* argsを、** kwargsからは)
内部#を返す闭包
クラスログイン(views.View):
メッセージ= ''
分发器
デフ派遣(自己、要求、* argsを、** kwargsから):
プリント( "エリック")
REQ =スーパー(ログイン、自己).dispatch(要求、* argsを、** kwargsから)
印刷( "ericc")
の戻りのREQ
@method_decorator(外側)
デフ(自己、要求、* argsを、** kwargsから取得):
要求、 "login.htmlとの"レンダリング返す)

)の外側(@method_decorator
DEF *、(自己、リクエストを投稿引数、** kwargsから):
ユーザー= request.POST.get( "ユーザー")
PWD = request.POST.get( "PWD")
C#=。1つのデータベースの制御値
C場合:
ますrequest.session [ "is_loginは"] = TRUE
ますrequest.session [ "ユーザー名"]は、ユーザー=
REQを=( "/ログイン/")リダイレクト
リターンREQ
他:
メッセージ= " 用户名或密码错误"
リターンは、(リクエストをレンダリング、 "login.htmlと" { "MSG":メッセージ})

おすすめ

転載: www.cnblogs.com/wylshkjj/p/11683250.html