Django中的CBV和FBV示例介绍


Posted in Python onFebruary 25, 2018

前言

本文主要给大家介绍了关于Django中CBV和FBV的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、  CBV

CBV是采用面向对象的方法写视图文件。

CBV的执行流程:

浏览器向服务器端发送请求,服务器端的urls.py根据请求匹配url,找到要执行的视图类,执行dispatch方法区分出是POST请求还是GET请求,执行views.py对应类中的POST方法或GET方法。

使用实例:

urls.py

path('login/',views.Login.as_view())

views.py

from django import views #在views.py的基础上添加
class Login(views.Views):
 def get(self,request)
  pass
  def pass(self,request)
  pass

使用装饰器:

from django import views
from django.utils.decorators import method_decorator
def outer(func):
 def inner(request,*args,**kwargs):
 return func(request,*args,**kwargs)
 return inner
class Login(views.View):
 @method_decorator(outer)
 def get(self,request,*args,**kwargs):
 pass

在类上面加装饰器,和在函数上加装饰器是一个性质。但加的方法有所不同。

eg:

@method_decorator(outer,name='dispatch')
class Login(views.View):

自定义dispatch:

class Login(views.View):
 def dispatch(self, request, *args, **kwargs):
 print(2222)
 ret = super(Login, self).dispatch(request, *args, **kwargs)
 print(1111)
 return ret
def get(self, request, *args, **kwargs):
  print('GET')
  return HttpResponse('OK')

执行结果:2222

GET
  1111

二、    FBV

FBV即在views.py中以函数的形式写视图。

看代码:

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‘^index/‘, views.index),
]

views.py

from django.shortcuts import render
def index(req):
 if req.method == ‘POST‘:
 print(‘method is :‘ + req.method)
 elif req.method == ‘GET‘:
 print(‘method is :‘ + req.method)
 return render(req, ‘index.html‘)

注意此处定义的是函数【def index(req):】

index.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>index</title>
</head>
<body>
 <form action="" method="post">
 <input type="text" name="A" />
 <input type="submit" name="b" value="提交" />
 </form>
</body>
</html>

上面就是FBV的使用。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python切换hosts文件代码示例
Dec 31 Python
Python入门及进阶笔记 Python 内置函数小结
Aug 09 Python
python队列通信:rabbitMQ的使用(实例讲解)
Dec 22 Python
python正则表达式爬取猫眼电影top100
Feb 24 Python
详解Python3的TFTP文件传输
Jun 26 Python
python3 字符串/列表/元组(str/list/tuple)相互转换方法及join()函数的使用
Apr 03 Python
pandas分区间,算频率的实例
Jul 04 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
Python实现敏感词过滤的4种方法
Sep 12 Python
弄清Pytorch显存的分配机制
Dec 10 Python
python实现双人五子棋(终端版)
Dec 30 Python
python 基于DDT实现数据驱动测试
Feb 18 Python
python中正则表达式的使用方法
Feb 25 #Python
python爬虫爬取淘宝商品信息(selenum+phontomjs)
Feb 24 #Python
python正则表达式爬取猫眼电影top100
Feb 24 #Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 #Python
python按综合、销量排序抓取100页的淘宝商品列表信息
Feb 24 #Python
python2.7+selenium2实现淘宝滑块自动认证功能
Feb 24 #Python
Python 中Pickle库的使用详解
Feb 24 #Python
You might like
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
浅谈php+phpStorm+xdebug配置方法
2015/09/17 PHP
PHP中文字符串截断无乱码解决方法
2016/10/10 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
PHP使用SWOOLE扩展实现定时同步 MySQL 数据
2017/04/09 PHP
Javascript 学习书 推荐
2009/06/13 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
js 获取元素在页面上的偏移量的方法汇总
2015/04/13 Javascript
简单的jQuery入门指引
2015/07/28 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
Angular2 组件通信的实例代码
2017/06/23 Javascript
JavaScript实现音乐自动切换和轮播
2017/11/05 Javascript
利用vue和element-ui设置表格内容分页的实例
2018/03/02 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
详解Vue 换肤方案验证
2019/08/28 Javascript
jQuery+ajax实现文件上传功能
2020/12/22 jQuery
Python3访问并下载网页内容的方法
2015/07/28 Python
Python装饰器基础详解
2016/03/09 Python
对python中的iter()函数与next()函数详解
2018/10/18 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
python GUI库图形界面开发之PyQt5单选按钮控件QRadioButton详细使用方法与实例
2020/02/28 Python
Python爬取网站图片并保存的实现示例
2021/02/26 Python
大学生水文观测实习自我鉴定
2013/09/29 职场文书
运动会邀请函范文
2014/01/31 职场文书
中学生操行评语大全
2014/04/24 职场文书
社会实践先进工作者事迹材料
2014/05/06 职场文书
艾滋病宣传活动总结
2014/05/08 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
2014年留守儿童工作总结
2014/12/10 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
解析python中的jsonpath 提取器
2022/01/18 Python