CBV

开发模式

普通开发模式,前后端一起写,数据通过后端出来由render渲染给模板

前后端分离

 

后端开发:

为前端提供url,api的开发,接口的开发

永远返回HttpResponse

from django.shortcuts import HttpResponse
import json


def get_list(request):
    list = [1, 2, 3, 4, 5, 6]
    return HttpResponse(json.dumps(list))

 

 通过访问url能够得到json数据,这就是一个简单的接口

 

django FBV和CBV

CBV就是基于类的视图,一个简单的基于类的视图

url设置

path("apitest",views.ApiTest.as_view()),  # 基于类的视图对应url跟as_view

视图设置

from django.views import View
class ApiTest(View): # 必须继承django中的View类
    def get(self, request, *args, **kwargs):  # 用于处理get请求
        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")

 

CBV实现原理

url——>类中的view方法——>dispatch方法(反射执行其他方法GET/POST/DELETE/PUT)

基于类的视图,首先看url,django每个url后边必定对应的是一个函数来处理请求,由此可以看出

path("apitest",views.ApiTest.as_view())

返回的是一个函数,我们点开父类View里边查看as_view方法

 

 我们再看view执行的哪些操作

 

 

posted @ 2019-09-05 09:08  南头老李  阅读(1354)  评论(0编辑  收藏  举报