1. 程式人生 > >CBV-1-面向對象-封裝

CBV-1-面向對象-封裝

視圖 detail 都是 student self 技術 alt get users

CBV-1-面向對象-封裝

CBV,基於反射實現根據請求方式不同,執行不同的方法。

    1. 開發模式
        - 普通開發方式(前後端放在一起寫)
        - 前後端分離
    
    2. 後端開發
        為前端提供URL(API/接口的開發)
        註:永遠返回HttpResponse

什麽是接口?

後端寫一個簡單的接口:

urls.py

技術分享圖片

views.py

技術分享圖片

url訪問接口:

技術分享圖片

3. Django FBV、CBV

FBV,function base view
技術分享圖片
CBV,class base view

url必須繼承as.view()

技術分享圖片

視圖必須繼承view. 這是固定搭配!!!

技術分享圖片

運行結果:get請求

技術分享圖片

運行結果:post請求

用一個工具,模擬發post請求:

技術分享圖片

註意:setting.py必須先關閉csrf

技術分享圖片

技術分享圖片

CBV的優勢: FBV需要判斷請求方式。本質都是一樣的,一個是基於類寫的,一個基於函數寫的。

技術分享圖片

代碼:

    3. Django FBV、CBV
        FBV,function base view
            def users(request):
                user_list = [alex,oldboy]
                
return HttpResponse(json.dumps((user_list))) CBV,class base view 路由: url(r^students/, views.StudentsView.as_view()), 視圖: from django.views import View class StudentsView(View):
def get(self,request,*args,**kwargs): return HttpResponse(GET) def post(self, request, *args, **kwargs): return HttpResponse(POST) def put(self, request, *args, **kwargs): return HttpResponse(PUT) def delete(self, request, *args, **kwargs): return HttpResponse(DELETE)

4. 列表生成式

技術分享圖片

5. 面向對象

*談談你對面向對象的認識?

  1. 封裝

    - 對同一類方法封裝到類中

    - 將數據封裝到對象中

技術分享圖片

  2.繼承(多個類共用的功能,為了避免重復編寫):

1.假設在每一個視圖中的get方法,執行前後後都要加上一段代碼,你會怎麽辦?

技術分享圖片

2.兩個類都有同一個方法,讓它們都繼承一個基類。

技術分享圖片

  3.多態

CBV-1-面向對象-封裝