yuan的Blog:https://www.cnblogs.com/yuanchenqi/articles/8715364.html
1.FBV与CBV
1.1 FBV
1.2 CBV
2.CBV源码剖析
2.1 案例
urls
from django.contrib import admin from django.urls import path from app01 import views urlpatterns = [ path(‘admin/‘, admin.site.urls), path(‘login/‘, views.LoginView.as_view()), ]
views
from django.shortcuts import render,HttpResponse # Create your views here. from django.views import View class LoginView(View): def get(self,request): return render(request,‘login.html‘) def post(self,request): return HttpResponse("POST") def put(self,request): pass
login.html
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>CBV</title> </head> <body> <form action="" method="post"> {% csrf_token %} <input type="submit"> </form> </body> </html>
效果
2.2 源码剖析
1. 请求方式(http协议的)
更新data
put 整个对data更新一次
patch 只更新局部的一部分
2. as_view()方法如何来的?
实质: 类下的反射做的分发
as_view()的本质就是执行view
源码剖析
什么时候调用view?实质是dispatch方法
当url中用户访问时,才调用
dispatch分发,派遣
dispath执行,就是请求方式方法的执行,就是开发人员写的方法
结果验证
原文地址:https://www.cnblogs.com/venicid/p/11230576.html
时间: 2024-11-02 02:10:37