CBV(class base view)一个url根据method方式调用相应的方法。method常用有get,post

如果是GET请求,Home类会调用get方法,如果是POST提交数据,则类会调用 post方法

CBV与FBV经常用到,建立两种方式都使用。

1)urls.py  

  1. url(r'^home/', views.Home.as_view()), 以不同的方式执行不同的方法,比如get,post #views.类名.as_view()
  1. from app01 import views
  2. urlpatterns = [
  3. url(r'^admin/', admin.site.urls),
  4. url(r'^index/', views.index),
  5. url(r'^login/', views.login),
  6. url(r'^home/', views.Home.as_view()),
  7. url(r'^detail-(\d+).html',views.detail), #动太路由
  8. ]

2)views.py

  1. #CBV django内容是怎么完的过程?
  2. #根据提交的头部和内容,头部包括URL,method, django通过反射找到相应的方法。
       所以django肯定有dispath,可以自己重写dispath,增加自己功能
  3.  
  4.   需要导入from django.views import View
  1. #CBV
  2. from django.views import View
  3. class Home(View):
  4. #CBV django内容是怎么完的过程?
  5. #根据提交的头部和内容,头部包括URL,method, django通过反射找到相应的方法。所以django肯定有dispath,可以自己重写dispath,增加自己功能
  6.  
  7. def dispatch(self, request, *args, **kwargs):
  8. print("before")
  9. result=super(Home,self).dispatch( request, *args, **kwargs)#调用父类的dispath
  10. print("after") #相档于装饰器功能
  11. return result
  12.  
  13. def get(self,request):
  14. print(request.method)
  15. return render(request,"home.html")
  16.  
  17. def post(self,request):
  18. print(request.method)
  19. return render(request,"home.html")

3.模板home.html

  

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link rel="stylesheet" href="/static/common.css">
  7. </head>
  8. <body>
  9. <form action="/home/" method="post">
  10. <input type="text" name="user" />
  11. <input type="submit" value="+">
  12. </form>
  13. <script src="/static/jquery-1.12.3.js"></script>
  14. </body>
  15. </html>

7)django-示例(cbv)的更多相关文章

  1. Django的CBV与FBV

    FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以不再赘述. CBV CBV(class base v ...

  2. Django的 CBV和FBV

    FBV CBV 回顾多重继承和Mixin 回到顶部 FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django的学习中,我们一直使用的是这种方式,所以 ...

  3. Django 之 CBV & FBV

    FBV FBV(function base views) 就是在视图里使用函数处理请求. 在之前django随笔中,一直使用的是这种方式,不再赘述. CBV CBV(class base views) ...

  4. Django之CBV和FBV

    Django之CBV和FBV CBV和FBV是C和F的区别: C是Class,F是Function 在请求中,有GET请求和POST请求. 在写CBV时,url是可以对应一个类的,在类中,分别写出GE ...

  5. django中CBV

    08.13自我总结 django中CBV 一.django处理业务逻辑的两种方式 FBV (function based views):使用函数来处理业务逻辑 CBV (class based vie ...

  6. django补充CBV和FBV模式

    django补充CBV和FBV模式FBV模式---函数:经常用的方式CBV模式---类CBV中url连接时函数名后面要接.as_view()class index(views.View): @... ...

  7. 使用Ajax (put delete ) django原生CBV 出现csrf token解决办法

    原因 django原生CBV中对于 Ajax put 或 delete 请求进行封装时,会把请求数据放在 request.body里, 所以获取不到csrf token 方式一: 关闭csrf 中间件 ...

  8. Django 的 cbv

    Django 的 cbv 正如我们了解到的,Django 写视图函数有两种写法:cbv 和 fbv.cbv 提倡使用类来写,fbv 使用函数来 写.当然为了代码的重复行,官方更推荐使用 cbv. 写 ...

  9. django中CBV源码分析

    前言:Django的视图处理方式有两种: FBV(function base views) 是在视图里基于函数形式处理请求. CBV(class base views)是在视图里基于类的形式处理请求. ...

  10. Django之 CBV和FBV

    FBV FBV(function base views) 就是在视图里使用函数处理请求. CBV CBV(class base views) 就是在视图里使用类处理请求. Python是一个面向对象的 ...

随机推荐

  1. Android的Device File Explorer刷新文件

    不知道为什么,右键点sync不起作用,必须点一下列表中的设备,才可以.

  2. Windows Docker Toolbox 安装Redis等开发环境

    Redis作者不接受微软的补丁 Redis文档(https://redis.io/topics/quickstart) redis-server 是 Redis Server 本身 redis-sen ...

  3. mvc EF框架中,加载外键对象序列化对象时报错 序列化类型为XX的对象时检测到循环引用

    Newtonsoft.Json.dll 或者通过->工具->库程序包管理工具->NuGet管理包->联机 输入Newtonsoft或者json.net Newtonsoft.J ...

  4. Linux或UNIX系统配置检查

    1. Linux或UNIX系统配置检查 系统配置的扫描是基于被动式策略进行扫描,主要检测主机上是否存在配置错误或者不符合预定义的安全策略的配置,通常需要管理员权限才能执行的扫描. 在Linux或UNI ...

  5. transition过渡动画

    过渡动画必须写在<transition></transition>标签内,配合其他标签使用. 例子: <transition name="fade" ...

  6. kettle mysql 乱码

    在数据库连接上添加字符集编码参数characterEncoding, 指定UTF8或GBK

  7. Flume配置Multiplexing Channel Selector

    1 官网内容 上面配置的是根据不同的heder当中state值走不同的channels,如果是CZ就走c1 如果是US就走c2 c3 其他默认走c4 2 我的详细配置信息 一个监听http端口 然后 ...

  8. 快速做ssh免密钥登陆

    1.本地生成密钥并发送目标主机 >&1 #采用数字签名RSA或DSA生成密钥文件和私钥文件 id_rsa,id_rsa.pub或id_dsa,id_dsa.pub ssh-copy-id ...

  9. python - list 和 tuple

  10. linux中管理包的apt和dpkg命令用法

    1,apt-get命令 apt-get是debian,ubuntu发行版的包管理工具,与红帽中的yum工具非常类似,适用于deb包管理式的操作系统,主要用于自动从互联网的软件仓库中搜索.安装.升级.卸 ...