http协议支持的请求方式
get请求:查询
post请求:提交数据(添加记录)
delete请求:删除数据
put/patch:更新数据
CBV 视图类
执行流程
会判断请求方式自动选择类下的函数执行
第一阶段:
url中调用的as_view方法在View父类中,会返回view方法,用户访问url时才会执行view方法
第二阶段:用户访问url时
view方法会返回dispatch方法
大体过程是这样的:
view()===self.dispatch()===self.get()
写法
urls.py中
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^login/', views.LoginView.as_view()),
]
views.py中
from django.views import View
class LoginView(View):
# 这样写的意义在于无论什么请求都要执行的操作就可以写在下面的函数中
def dispatch(self, request, *args, **kwargs):
print("OK")
ret = super().dispatch(request, *args, **kwargs)
return ret
def get(self, request):
return render(request, "login.html")
def post(self, request):
user = request.POST.get("user")
return HttpResponse("OK")