码迷,mamicode.com
首页 > 其他好文 > 详细

1.FBV与CBV

时间:2019-07-23 11:21:42      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:doctype   fbv   nbsp   head   app   post   data   结果   sub   

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执行,就是请求方式方法的执行,就是开发人员写的方法

 

 结果验证

技术图片

技术图片

 技术图片

 

 技术图片

 

1.FBV与CBV

标签:doctype   fbv   nbsp   head   app   post   data   结果   sub   

原文地址:https://www.cnblogs.com/venicid/p/11230576.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!