1.FBV与CBV

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-08-30 16:14:36

1.FBV与CBV的相关文章

django中的FBV和CBV

django中请求处理方式有2种:FBV 和 CBV 一.FBV FBV(function base views) 就是在视图里使用函数处理请求. 看代码: urls.py from django.conf.urls import url, include # from django.contrib import admin from mytest import views urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^in

FBV和CBV

什么是FBV和CBV呢~~ FBV 基于函数的视图 CBV 基于类的视图 也就是说我们是用函数编写视图~还是类编写视图~~我们来看下两个的简单实现~~ urlpatterns = [ path('admin/', admin.site.urls), path('test_fbv', test_fbv), path('test_cbv', TestCBV.as_view()) ] def test_fbv(request): return HttpResponse("ok") class

FBV和CBV区别

FBV和CBV区别 FBV 就是在视图里使用函数处理请求 fbv就是在url中一个路径对应一个函数 在视图函数中 CBV 就是在视图里使用类处理请求 优点 提高了代码的复用性,可以使用面向对象的技术,比如说Mixin(多继承) 可以用不同的函数针对不同的HTTP方法处理,而不是通过很多if判断,提高了代码可读性 代码逻辑 url from django.conf.urls import url from myapp.views import MyView urlpatterns = [ url(

一、虚拟环境.二、路由配置主页与404.三、2.x路由分发.四、伪静态.五、request对象.六、FBV与CBV.七、文件上传.

一.虚拟环境 ''' 解决版本共存 1. 用pycharm选择File点击NewProject然后选择virtualenv创建一个纯净环境 2. 打开下载的目录将venv文件夹下的所有文件(纯净的环境)copy到需要指定长期使用的文件夹下 3. 再次创建项目时,将该环境(指定长期使用的文件夹下Scripts文件夹中的python.exe文件)添加到pycharm环境选择(System Interpreter)中 4. 为该环境添加需要处理的版本共存包 ''' 二.路由配置主页与404 ''' 路

django之路由分组,路由分发,FBV,CBV,ORM框架

django之路由分组,路由分发,FBV,CBV,ORM框架 今日的内容: a. 路由系统 1. 创建app 2. 路由的分组 3. 路由的分发 - 正则表达式匹配 b. django的orm(模型model) 1. 创建模型的步骤 2. orm基本的增删改查 3. 正向查询和反向查询 注意事项: 1. 前台传给后台一个列表时,后端如何接受: request.POST.getlist(字段名) 2. 前台传给后台一个列表时,需要在ajax请求中增加一个参数: traditional: true

FBV与CBV 及CBV源码分析

FBV与CBV 及CBV源码分析 FBV(Function Based View) 基于函数的视图 基于函数的视图,我们一直在用没啥好讲的,就是导入模块调用函数执行业务 CBV(Class Based View) 基于类的视图 路由 from app01 import views url(r'^haha/',views.zx_view.as_view()), 视图 class zx_view(View): def get(self,request): return render(request,

191112Django fbv和cbv

cbv:类.base.view fbc:函数.base.view from django.contrib import admin from django.urls import path from app import views urlpatterns = [ path('fbv/', views.fbv), path('cbv/', views.CBV.as_view()), ] from django.shortcuts import render,redirect,HttpRespon

Python菜鸟之路:Django 路由补充FBV和CBV

在Python菜鸟之路:Django 路由.模板.Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view . 今天补充另外一种路由关系的写法:CBV,即:class base view , 也可以看做为面向资源编程的另外一种叫法,类似tornado中的路由写法. 1. 建立路由关系urls.py from app01 import views urlpatterns = [ url(r'^home/', views.Hom

django的FBV和CBV

title: python djano CBV FBV tags: python, djano, CBV, FBV grammar_cjkRuby: true --- python django的function的定义方法 在处理URL的调用方法的function里面,可能会这样定义 Fuction Based View 在视图中用函数来处理请求 def get(): if method == "GET": XXX def post(): if method == "POST