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 相关文章推荐
linux系统使用python监测系统负载脚本分享
Jan 15 Python
使用Python实现下载网易云音乐的高清MV
Mar 16 Python
把项目从Python2.x移植到Python3.x的经验总结
Apr 20 Python
python查询sqlite数据表的方法
May 08 Python
神经网络(BP)算法Python实现及应用
Apr 16 Python
python 通过字符串调用对象属性或方法的实例讲解
Apr 21 Python
python实现决策树分类
Aug 30 Python
对python多线程与global变量详解
Nov 09 Python
python 定义类时,实现内部方法的互相调用
Dec 25 Python
利用Python实现Json序列化库的方法步骤
Sep 09 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 Python
python 实现Harris角点检测算法
Dec 11 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
Wordpress php 分页代码
2009/10/21 PHP
ecshop 订单确认中显示省市地址信息的方法
2010/03/15 PHP
php checkbox 取值详细说明
2010/08/19 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
找到了一篇jQuery与Prototype并存的冲突的解决方法
2007/08/29 Javascript
通过修改referer下载文件的方法
2008/05/11 Javascript
多浏览器兼容性比较好的复制到剪贴板的js代码
2011/10/09 Javascript
javascript判断是手机还是电脑访问网页的简单实例分享
2014/06/03 Javascript
jQuery的animate函数学习记录
2014/08/08 Javascript
javascript原型链继承用法实例分析
2015/01/28 Javascript
JavaScript中使用Object.prototype.toString判断是否为数组
2015/04/01 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
Bootstrap源码解读网格系统(3)
2016/12/22 Javascript
详解nodeJS中读写文件方法的区别
2017/03/06 NodeJs
js和jquery中获取非行间样式
2017/05/05 jQuery
Vue CLI3 如何支持less的方法示例
2018/08/29 Javascript
深入浅析Vue.js 中的 v-for 列表渲染指令
2018/11/19 Javascript
JavaScript剩余操作符Rest Operator详解
2019/07/20 Javascript
layui table复选框禁止某几条勾选的实例
2019/09/20 Javascript
新手入门js闭包学习过程解析
2019/10/08 Javascript
js定时器出现第一次延迟的原因及解决方法
2021/01/04 Javascript
[48:21]林俊杰圣堂刺客超神杀戮秀
2014/10/29 DOTA
[01:04:49]KG vs LGD 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python3写的简单本地文件上传服务器实例
2018/06/04 Python
使用python中的in ,not in来检查元素是不是在列表中的方法
2018/07/06 Python
Python类及获取对象属性方法解析
2020/06/15 Python
通过实例解析python and和or使用方法
2020/11/14 Python
在HTML5 Canvas中放入图片和保存为图片的方法
2014/05/03 HTML / CSS
阿联酋航空丹麦官方网站:Emirates DK
2019/08/25 全球购物
恒华伟业笔试面试题
2015/02/26 面试题
入党自我评价优缺点
2014/01/25 职场文书
工程类专业自荐信范文
2014/03/09 职场文书
Eclipse+Java+Swing+Mysql实现电影购票系统(详细代码)
2022/01/18 Java/Android