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 运算符 供重载参考
Jun 11 Python
python client使用http post 到server端的代码
Feb 10 Python
python操作MongoDB基础知识
Nov 01 Python
Python爬虫模拟登录带验证码网站
Jan 22 Python
python连接mysql实例分享
Oct 09 Python
python中join()方法介绍
Oct 11 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
Python代码块及缓存机制原理详解
Dec 13 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
keras的siamese(孪生网络)实现案例
Jun 12 Python
解决Keras使用GPU资源耗尽的问题
Jun 22 Python
在终端启动Python时报错的解决方案
Nov 20 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
PHP4.04简明安装
2006/10/09 PHP
PHP+MySQL5.0中文乱码解决方法
2006/11/20 PHP
php数组应用之比较两个时间的相减排序
2008/08/18 PHP
php操作XML、读取数据和写入数据的实现代码
2014/08/15 PHP
php防止站外远程提交表单的方法
2014/10/20 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
2016/05/21 PHP
Json_decode 解析json字符串为NULL的解决方法(必看)
2017/02/17 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
node.js中的fs.mkdir方法使用说明
2014/12/17 Javascript
超详细的javascript数组方法汇总
2015/11/21 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
Angular中使用$watch监听object属性值的变化(详解)
2017/04/24 Javascript
代码详解Vuejs响应式原理
2017/12/20 Javascript
vue实现选项卡及选项卡切换效果
2018/04/24 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
如何修改Vue打包后文件的接口地址配置的方法
2020/04/22 Javascript
原生js实现拖拽移动与缩放效果
2020/08/24 Javascript
[00:15]天涯墨客终极技能展示
2018/08/25 DOTA
python 布尔操作实现代码
2013/03/23 Python
使用Python的内建模块collections的教程
2015/04/28 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
2020/08/07 Python
在css3中background-clip属性与background-origin属性的用法介绍
2012/11/13 HTML / CSS
I.T集团香港官方商城:ITeSHOP.com Hong Kong
2019/02/15 全球购物
益模软件Java笔试题
2012/03/27 面试题
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
超级搞笑检讨书
2014/01/15 职场文书
浙江文明网签名寄语
2014/01/18 职场文书
优秀毕业生自我鉴定
2014/02/11 职场文书
护士毕业实习感言
2014/03/05 职场文书
企业宣传口号
2014/06/12 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
债务纠纷委托书范本
2014/10/14 职场文书
小学少先队辅导员述职报告
2015/01/10 职场文书
房屋所有权证明
2015/06/19 职场文书
2016年春季运动会广播稿
2015/08/19 职场文书