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之??碌某?? target=
Sep 12 Python
Python import与from import使用及区别介绍
Sep 06 Python
Python3 实现串口两进程同时读写
Jun 12 Python
对PyQt5基本窗口控件 QMainWindow的使用详解
Jun 19 Python
python-django中的APPEND_SLASH实现方法
Jun 21 Python
PyCharm无法引用自身项目解决方式
Feb 12 Python
pytorch数据预处理错误的解决
Feb 20 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
关于Kotlin中SAM转换的那些事
Sep 15 Python
python 自定义异常和主动抛出异常(raise)的操作
Dec 11 Python
opencv实现图像平移效果
Mar 24 Python
Python matplotlib绘制雷达图
Apr 13 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
星际争霸秘籍
2020/03/04 星际争霸
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
PHP中使用数组指针函数操作数组示例
2014/11/19 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
PHP单链表的实现代码
2016/07/05 PHP
thinkPHP中验证码的简单实现方法
2016/12/05 PHP
Laravel学习教程之IOC容器的介绍与用例
2017/08/15 PHP
QQ登录简单实现代码
2021/03/09 Javascript
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
jQuery Tips 为AJAX回调函数传递额外参数的方法
2010/12/28 Javascript
如何将php数组或者对象传递给javascript
2014/03/20 Javascript
JQuery使用index方法获取Jquery对象数组下标的方法
2015/05/18 Javascript
js获取url传值的方法
2015/12/18 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
JavaScript中的普通函数和箭头函数的区别和用法详解
2017/03/21 Javascript
完美实现js拖拽效果 return false用法详解
2017/07/28 Javascript
JavaScript实现微信号随机切换代码
2018/03/09 Javascript
Vue 源码分析之 Observer实现过程
2018/03/29 Javascript
JS验证输入的是否是数字及保留几位小数问题
2018/05/09 Javascript
Angular(5.2-&gt;6.1)升级小结
2018/12/27 Javascript
利用不到200行代码写一款属于你自己的js类库
2019/07/08 Javascript
在vue中使用防抖和节流,防止重复点击或重复上拉加载实例
2019/11/13 Javascript
js对象简介与基本用法示例
2020/03/13 Javascript
js实现类选择器和name属性选择器的示例步骤
2021/02/07 Javascript
[02:40]2014DOTA2 国际邀请赛中国区预选赛 四大豪门抵达华西村
2014/05/23 DOTA
[01:09:23]KG vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
Java中重定向输出流实现用文件记录程序日志
2015/06/12 Python
python实现决策树分类算法
2017/12/21 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
Python Sqlalchemy如何实现select for update
2020/10/12 Python
高中自我评价分享
2013/12/05 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
法人任命书范本
2014/06/04 职场文书
先进党支部申报材料
2014/12/24 职场文书