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对象体系深入分析
Oct 28 Python
Linux CentOS7下安装python3 的方法
Jan 21 Python
python如何通过twisted实现数据库异步插入
Mar 20 Python
python实现最长公共子序列
May 22 Python
详解Django+Uwsgi+Nginx 实现生产环境部署
Nov 06 Python
PyQt 图解Qt Designer工具的使用方法
Aug 06 Python
深入了解Python在HDA中的应用
Sep 05 Python
python被修饰的函数消失问题解决(基于wraps函数)
Nov 04 Python
Django多进程滚动日志问题解决方案
Dec 17 Python
Centos7下源码安装Python3 及shell 脚本自动安装Python3的教程
Mar 07 Python
解决python调用自己文件函数/执行函数找不到包问题
Jun 01 Python
Python爬虫基础之初次使用scrapy爬虫实例
Jun 26 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
UCenter 批量添加用户的php代码
2012/07/17 PHP
Ajax+PHP快速上手及简单应用说明
2013/07/24 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
Yii2框架引用bootstrap中日期插件yii2-date-picker的方法
2016/01/09 PHP
跨浏览器开发经验总结(四) 怎么写入剪贴板
2010/05/13 Javascript
分享14个很酷的jQuery导航菜单插件
2011/04/25 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
JavaScript+html5 canvas实现图片破碎重组动画特效
2016/02/22 Javascript
Mobile Web开发基础之四--处理手机设备的横竖屏问题
2017/08/11 Javascript
Angular2开发环境搭建教程之VS Code
2017/12/15 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
vue鼠标移入添加class样式,鼠标移出去除样式(active)实现方法
2018/08/22 Javascript
vue实现动态列表点击各行换色的方法
2018/09/13 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
js实现烟花特效
2020/03/02 Javascript
跟老齐学Python之有点简约的元组
2014/09/24 Python
Python的Bottle框架中获取制定cookie的教程
2015/04/24 Python
深入浅析Python2.x和3.x版本的主要区别
2018/11/30 Python
如何在Django项目中引入静态文件
2019/07/26 Python
Python 保持登录状态进行接口测试的方法示例
2019/08/06 Python
解决Python使用列表副本的问题
2019/12/19 Python
python将音频进行变速的操作方法
2020/04/08 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
HTML5不支持frameset的两种解决方法
2016/11/14 HTML / CSS
美国优质马术服装购买网站:Breeches.com
2019/12/16 全球购物
食品工程专业求职信
2014/06/15 职场文书
田径运动会通讯稿
2014/09/13 职场文书
统计学教授推荐信
2014/09/18 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
2014年城市管理工作总结
2014/12/02 职场文书
教代会闭幕词
2015/01/28 职场文书
资料员岗位职责
2015/02/10 职场文书
Go 语言结构实例分析
2021/07/04 Golang
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server