CBV-1-面向對象-封裝
阿新 • • 發佈:2018-07-08
視圖 detail 都是 student self 技術 alt get users FBV,function base view
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-面向對象-封裝