FBV和CBV

fbv就是一個(gè) url對應(yīng)一個(gè)函數(shù)

cbv就是一個(gè)url對應(yīng)一個(gè)類

cbv

  • cbv定義類的時(shí)候必須要繼承view
  • 這個(gè)類里面可以寫好多函數(shù)方法赦肋,但是本質(zhì)上都是通過dispatch這個(gè)函數(shù)反射執(zhí)行
  • 在寫url的時(shí)候必須要加as view

定義cbv

給cbv添加裝飾器的三個(gè)位置

csrf的添加

必須要加到dispatch里面

  1. FBV和CBV
    function base view, URL對應(yīng)函數(shù)
    class base view裹虫, URL對應(yīng)類

    PS:
     form表單提交:    GET,POST   ***
     
     Ajax提交數(shù)據(jù):    GET,POST
                       ['get'獲取, 'post'創(chuàng)建, 'put'更新, 'patch'局部更新, 'delete'刪除, 'head', 'options', 'trace'] -> restful規(guī)范
    

    a. 基本使用

    b. 基于dispatch和繼承實(shí)現(xiàn)用戶登錄代碼

    c. 裝飾器

     get,post方法上
    
                 class LoginView(View):
    
                     
    
                     def dispatch(self, request, *args, **kwargs):
    
                         return super(LoginView,self).dispatch(request, *args, **kwargs)
    
    
    
                     def get(self,request):
    
                         return render(request,'login.html')
    
    
    
                     @method_decorator(test)
    
                     def post(self,request):
    

request.GET

request.POST # 請求頭中的:content-type

request.body

                        user = request.POST.get('user')

                        pwd = request.POST.get('pwd')

                        if user == 'alex' and pwd == "alex3714":

生成隨機(jī)字符串

寫瀏覽器cookie: session_id: 隨機(jī)字符串

寫到服務(wù)端session:

{

"隨機(jī)字符串": {'user_info':'alex}

}

                            request.session['user_info'] = "alex"

                            return redirect('/index.html')

                        return render(request, 'login.html')

    dispatch方法上

        class LoginView(View):

            @method_decorator(test)

            def dispatch(self, request, *args, **kwargs):

                return super(LoginView,self).dispatch(request, *args, **kwargs)



            def get(self,request):

                return render(request,'login.html')

            def post(self,request):

request.GET

request.POST # 請求頭中的:content-type

request.body

                user = request.POST.get('user')

                pwd = request.POST.get('pwd')

                if user == 'alex' and pwd == "alex3714":

生成隨機(jī)字符串

寫瀏覽器cookie: session_id: 隨機(jī)字符串

寫到服務(wù)端session:

{

"隨機(jī)字符串": {'user_info':'alex}

}

                    request.session['user_info'] = "alex"

                    return redirect('/index.html')

                return render(request, 'login.html')

    類上

        @method_decorator(test,name='get')

        class LoginView(View):

            

            def dispatch(self, request, *args, **kwargs):

                return super(LoginView,self).dispatch(request, *args, **kwargs)



            def get(self,request):

                return render(request,'login.html')

                def post(self,request):
                    # request.GET
                    # request.POST # 請求頭中的:content-type
                    # request.body
                    user = request.POST.get('user')
                    pwd = request.POST.get('pwd')
                    if user == 'alex' and pwd == "alex3714":
                        # 生成隨機(jī)字符串
                        # 寫瀏覽器cookie: session_id: 隨機(jī)字符串
                        # 寫到服務(wù)端session:
                        # {
                        #     "隨機(jī)字符串": {'user_info':'alex}
                        # }
                        request.session['user_info'] = "alex"
                        return redirect('/index.html')
                    return render(request, 'login.html')
                    
        特殊:CSRF Token只能加到dispatch

                from django.views.decorators.csrf import csrf_exempt,csrf_protect
                class LoginView(View):
                    @method_decorator(csrf_exempt)
                    def dispatch(self, request, *args, **kwargs):
                        return super(LoginView,self).dispatch(request, *args, **kwargs)

                    def get(self,request):
                        return render(request,'login.html')

                    def post(self,request):
                        # request.GET
                        # request.POST # 請求頭中的:content-type
                        # request.body
                        user = request.POST.get('user')
                        pwd = request.POST.get('pwd')
                        if user == 'alex' and pwd == "alex3714":
                            # 生成隨機(jī)字符串
                            # 寫瀏覽器cookie: session_id: 隨機(jī)字符串
                            # 寫到服務(wù)端session:
                            # {
                            #     "隨機(jī)字符串": {'user_info':'alex}
                            # }
                            request.session['user_info'] = "alex"
                            return redirect('/index.html')
                        return render(request, 'login.html')
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市餐曼,隨后出現(xiàn)的幾起案子碾盟,更是在濱河造成了極大的恐慌,老刑警劉巖兢孝,帶你破解...
    沈念sama閱讀 222,807評論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異仅偎,居然都是意外死亡跨蟹,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,284評論 3 399
  • 文/潘曉璐 我一進(jìn)店門橘沥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來窗轩,“玉大人,你說我怎么就攤上這事座咆×∫眨” “怎么了?”我有些...
    開封第一講書人閱讀 169,589評論 0 363
  • 文/不壞的土叔 我叫張陵箫措,是天一觀的道長腹备。 經(jīng)常有香客問我衬潦,道長斤蔓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,188評論 1 300
  • 正文 為了忘掉前任镀岛,我火速辦了婚禮弦牡,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘漂羊。我一直安慰自己驾锰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,185評論 6 398
  • 文/花漫 我一把揭開白布走越。 她就那樣靜靜地躺著椭豫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赏酥,一...
    開封第一講書人閱讀 52,785評論 1 314
  • 那天喳整,我揣著相機(jī)與錄音,去河邊找鬼裸扶。 笑死框都,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的呵晨。 我是一名探鬼主播魏保,決...
    沈念sama閱讀 41,220評論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼摸屠!你這毒婦竟也來了谓罗?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,167評論 0 277
  • 序言:老撾萬榮一對情侶失蹤季二,失蹤者是張志新(化名)和其女友劉穎妥衣,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體戒傻,經(jīng)...
    沈念sama閱讀 46,698評論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡税手,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,767評論 3 343
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了需纳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片芦倒。...
    茶點(diǎn)故事閱讀 40,912評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖不翩,靈堂內(nèi)的尸體忽然破棺而出兵扬,到底是詐尸還是另有隱情,我是刑警寧澤口蝠,帶...
    沈念sama閱讀 36,572評論 5 351
  • 正文 年R本政府宣布器钟,位于F島的核電站,受9級特大地震影響妙蔗,放射性物質(zhì)發(fā)生泄漏傲霸。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,254評論 3 336
  • 文/蒙蒙 一眉反、第九天 我趴在偏房一處隱蔽的房頂上張望昙啄。 院中可真熱鬧,春花似錦寸五、人聲如沸梳凛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,746評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽韧拒。三九已至淹接,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間叛溢,已是汗流浹背蹈集。 一陣腳步聲響...
    開封第一講書人閱讀 33,859評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留雇初,地道東北人拢肆。 一個(gè)月前我還...
    沈念sama閱讀 49,359評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像靖诗,于是被迫代替她去往敵國和親郭怪。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,922評論 2 361

推薦閱讀更多精彩內(nèi)容