欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Django CBV類的用法詳解

 更新時間:2019年07月26日 15:13:52   作者:bainianminguo  
這篇文章主要介紹了Django CBV類的用法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

前言

之前我們在路由匹配的時候,一個url對應(yīng)一個函數(shù),其實我們還可以一個url對應(yīng)一個類,這個就是CBV,下面我們來簡單的介紹一下CBV

一、CBV的基本用法

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

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

2、在視圖函數(shù)中導(dǎo)入一個模塊

from django import views

3、在視圖函數(shù)中寫一個類,如果是get請求,則執(zhí)行g(shù)et方法,如果是post請求,則執(zhí)行post方法

class class_login(views.View):
 # 1、如果是get請求,則執(zhí)行g(shù)et函數(shù)
 
  @method_decorator(outer)
  def get(self,request,*args,**kwargs):
    print(request.path)
    return HttpResponse("yyyyyy")
 
  # 2、如果是post請求,則執(zhí)行post函數(shù)
  def post(self,request,*args,**kwargs):
    pass

4、post和get請求是最常見的,還有其他的方法,我們看下視圖函數(shù)中繼承的父類View中的方法,還支持如下這么多的方法

http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']

二、裝飾器

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

1、需要導(dǎo)入一個模塊

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、我們該如何把裝飾器加的類中的,就需要用到我們第一步導(dǎo)入的模塊了

3_1、為類中的一個函數(shù)添加裝飾器,方法如下

@method_decorator(outer)
def get(self,request,*args,**kwargs):
  print(request.path)
  return HttpResponse("yyyyyy")

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

@method_decorator(outer,name="dispatch")
class class_login(views.View):
 # 1、如果是get請求,則執(zhí)行g(shù)et函數(shù)
 
  # @method_decorator(outer)
  def get(self,request,*args,**kwargs):
    print(request.path)
    return HttpResponse("yyyyyy")
 
  # 2、如果是post請求,則執(zhí)行post函數(shù)
  def post(self,request,*args,**kwargs):
    pass

dispatch就是django默認(rèn)給我們定義的方法,在執(zhí)行g(shù)et或者post方法之前會執(zhí)行的一個方法

4、子類如果想調(diào)用父類的方法,有兩種方法來實現(xiàn)

class login(views.View):
  def dispatch(self, request, *args, **kwargs):
 
    # 調(diào)用父類的dispatch方法的兩種方法
    # 方式1
    super(login,self).dispatch(request,*args,**kwargs)
 
    # 方式2
    super().dispatch(request, *args, **kwargs)
 
    return HttpResponse("ok")
  def get(self,request):
    return HttpResponse("get")
 
  def post(self,rquest):
    return HttpResponse("post")

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python入門教程(四十三)Python的NumPy數(shù)據(jù)類型

    Python入門教程(四十三)Python的NumPy數(shù)據(jù)類型

    這篇文章主要介紹了Python入門教程(四十二)Python的NumPy數(shù)組裁切,NumPy有一些額外的數(shù)據(jù)類型,并通過一個字符引用數(shù)據(jù)類型,例如 i 代表整數(shù),u 代表無符號整數(shù)等,需要的朋友可以參考下
    2023-05-05
  • 深入理解numpy中argmax的具體使用

    深入理解numpy中argmax的具體使用

    本文主要介紹了深入理解numpy中argmax的具體使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 在Python的Django框架中實現(xiàn)Hacker News的一些功能

    在Python的Django框架中實現(xiàn)Hacker News的一些功能

    這篇文章主要介紹了在Python的Django框架中實現(xiàn)Hacker News的一些功能,包括投票“頂”評論等功能,需要的朋友可以參考下
    2015-04-04
  • 關(guān)于Python去除字符串中空格的方法總結(jié)

    關(guān)于Python去除字符串中空格的方法總結(jié)

    用Python處理字符串時會經(jīng)常要去掉字符串首、尾或者中間的空白,以得到我們想要的結(jié)果,下面這篇文章主要給大家介紹了關(guān)于Python去除字符串中空格的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 在Python的Django框架下使用django-tagging的教程

    在Python的Django框架下使用django-tagging的教程

    這篇文章主要介紹了在Python的Django框架下使用django-tagging的教程,針對網(wǎng)絡(luò)編程中的tag部分功能提供幫助,需要的朋友可以參考下
    2015-05-05
  • pytorch?plt.savefig()的用法及保存路徑

    pytorch?plt.savefig()的用法及保存路徑

    這篇文章主要給大家介紹了關(guān)于pytorch?plt.savefig()的用法及保存路徑的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-01-01
  • python3中的eval和exec的區(qū)別與聯(lián)系

    python3中的eval和exec的區(qū)別與聯(lián)系

    這篇文章主要介紹了python3中的eval和exec的區(qū)別與聯(lián)系,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-10-10
  • Python自動化之批量處理工作簿和工作表

    Python自動化之批量處理工作簿和工作表

    今天給大家整理了如何使用Python實現(xiàn)批量處理工作簿和工作表,文中有非常詳細(xì)的介紹及代碼示例,對小伙伴們很有幫助,需要的朋友可以參考下
    2021-06-06
  • 如何使用Python獲取昨天的日期

    如何使用Python獲取昨天的日期

    Python 是一種高級語言,可用于數(shù)據(jù)科學(xué)和機器學(xué)習(xí),以使用 Python 的數(shù)據(jù)結(jié)構(gòu)訓(xùn)練 AI,它用于編寫各種應(yīng)用程序,從 Web 和桌面到操作系統(tǒng)級程序,這篇文章主要介紹了在 Python 中獲取昨天的日期,需要的朋友可以參考下
    2023-05-05
  • python操作xls使用xlwings代提openpyxl基礎(chǔ)

    python操作xls使用xlwings代提openpyxl基礎(chǔ)

    這篇文章主要為大家介紹了python操作xls使用xlwings代提openpyxl示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08

最新評論