开发模式
普通开发模式,前后端一起写,数据通过后端出来由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执行的哪些操作