Django CBV類的用法詳解

2022-10-04 16:42:11 字數 2289 閱讀 5757

前言

之前我們在路由匹配的時候,乙個url對應乙個函式,其實我們還可以乙個url對應乙個類,這個就是cbv,下面我們來簡單的介紹一下cbv

一、cbv的基本用法

1、在路由匹配中要這樣寫,class_login是對應的類,as_view()是固定寫法,必須要這麼寫,記住後面有個括號

url(r'^class_login/', views.class_login.as_view()),

2、在檢視函式中匯入乙個模組

from django import views

3、在檢視函式中寫乙個類,如果是get請求,則執行get方法,如果是post請求,則執行post方法

class class_login(views.view):

# 1、如果是get請求,則執行get函式

# 2、如果是post請求,則執行post函式

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

pass

4、post和get請求是最常見的,還有其他的方法,我們看下檢視函式中繼承的父類view中的方法,還支援如下這麼多的方法

http_method_names = ['get', 'post', 'put',程式設計客棧 'patch', 'delete', 'head', 'options', 'trace']

二、裝飾器

上面基本的用法我們就已經介紹完了,如果要用裝飾器,該怎麼弄呢?

1、需要匯入乙個模組

from django.utils.decorators import method_decorator

2、然後定義乙個裝飾器

def outer(func):

def inner(request,*args,**kwargs):

print(request.method)

rep = func(request,*args,**kwargs)

return rep

return inner

3、我們該如何把裝飾器加的類中的,就需要用到我們第一步匯入的模組了

3_1、為類中的乙個函式新增裝飾器,方法如下

3_2、為類中的所有的方法新增裝飾器,方法如下

@method_decorator(outer,name="dispatch")

class class_login(views.view):

# 1、如果是get請求,則執行get函式

# @met程式設計客棧hod_decorator(outer)

# 2、如果是post請求,則執行post函式

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

pass

dispatch就是django預設給我們定義的方法,在執行get或者post方法之前會執行的乙個方法

4、子類如果想呼叫父類的方法,有兩種方法來實現

class login(views.jajwfffwuoview):

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

# 呼叫父類的dispatch方法的兩種方法

# 方式1

super(login,self).dispatch(request,*args,**kwargs)

# 方式2

super().dispatch(request, *args, **k程式設計客棧wargs)

程式設計客棧 return httpresponse("post")

本文標題: django cbv類的用法詳解

本文位址:

C stringstream類用法詳解

本文主要介紹 c 中 stringstream 類的常見用法。定義了三個類 istringstream ostringstream 和 stringstream,分別用來進行流的輸入 輸出和輸入輸出操作。本文以 stringstream 為主,介紹流的輸入和輸出操作。主要用來進行資料型別轉換,由於 ...

Random類的用法與詳解

random類生成的隨機數其實是偽隨機,即就是有規律的隨機數。無參構造的話,以當前系統時間為種子,隨機生成數字。有參構造的話,引數是乙個種子數。給定乙個種子數,其生成的隨機數不管生成多少次,它的隨機數都是一樣的。該方法的引數是隨機數生成的區間 約束 例如nextint 10 0,10 包括0不包括1...

c 中pair類模板的用法詳解

pair 標頭檔案 include 類模板 template struct pair 引數 t1是第乙個值的資料型別,t2是第二個值的資料型別。功能 pair將一對值組合成乙個值,這一對值可以具有不同的資料型別 t1和t2 兩個值可以分別用pair的兩個公有函式first和second訪問。具體用法...