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实现端口复用实例代码
Jul 03 Python
python实现在windows下操作word的方法
Apr 28 Python
python使用xlrd实现检索excel中某列含有指定字符串记录的方法
May 09 Python
深入浅析python中的多进程、多线程、协程
Jun 22 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
windows下numpy下载与安装图文教程
Apr 02 Python
python 使用while写猜年龄小游戏过程解析
Oct 07 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
django-利用session机制实现唯一登录的例子
Mar 16 Python
python使用hdfs3模块对hdfs进行操作详解
Jun 06 Python
python中selenium库的基本使用详解
Jul 31 Python
Django-Scrapy生成后端json接口的方法示例
Oct 06 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
屏蔽浏览器缓存另类方法
2006/10/09 PHP
Fedora下安装php Redis扩展笔记
2014/09/03 PHP
使用PHP Socket 编程模拟Http post和get请求
2014/11/25 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
PHP使用file_get_content设置头信息的方法
2016/02/14 PHP
详谈PHP中的密码安全性Password Hashing
2017/02/04 PHP
PHP学习记录之数组函数
2018/06/01 PHP
PHP 文件写入和读取操作实例详解【必看篇】
2019/11/04 PHP
html中table数据排序的js代码
2011/08/09 Javascript
日期处理的js库(迷你版)--自建js库总结
2011/11/21 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
回车直接实现点击某按钮的效果即触发单击事件
2014/02/27 Javascript
详解js图片轮播效果实现原理
2015/12/17 Javascript
Bootstrap Search Suggest使用例子
2016/12/21 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
微信小程序五星评分效果实现代码
2017/04/06 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
webpack之devtool详解
2018/02/10 Javascript
Vue 3.x+axios跨域方案的踩坑指南
2019/07/04 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
vue filter 完美时间日期格式的代码
2019/08/14 Javascript
vue+axios实现post文件下载
2019/09/25 Javascript
解决三元运算符 报错“SyntaxError: can''t assign to conditional expression”
2020/02/12 Javascript
JS实现无限轮播无倒退效果
2020/09/21 Javascript
[05:17]DOTA2誓师:今天我们在这里 明天TI4等我!
2014/03/26 DOTA
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
python删除特定文件的方法
2015/07/30 Python
Python实现计算两个时间之间相差天数的方法
2017/05/10 Python
Python Flask 搭建微信小程序后台详解
2019/05/06 Python
python覆盖写入,追加写入的实例
2019/06/26 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
西班牙用户之间买卖视频游戏的平台:Wakkap
2020/03/21 全球购物
整顿机关作风心得体会
2014/09/10 职场文书
2015年社区居委会工作总结
2015/05/18 职场文书
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript