网络编程
位置:首页>> 网络编程>> Python编程>> Django中的CBV和FBV示例介绍

Django中的CBV和FBV示例介绍

作者:xsan  发布时间:2022-05-23 10:13:59 

标签:django,cbv,fbv

前言

本文主要给大家介绍了关于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的使用。

来源:http://www.cnblogs.com/xshan/p/8467763.html

0
投稿

猜你喜欢

  • 本文通过实例为大家分享了python实现批量提取指定文件夹下同类型文件,供大家参考,具体内容如下代码import osimport shut
  • Anaconda 是一个旗舰版的python安装包, 因为普通的python没有库, 如果需要安装一些重要的库, 要经常一个一个下载,会非常
  • 核心代码function convert2utf8($string)  {    return iconv(&
  • 1、背景a、搜狗也发布了自己的人工智能 api,包括身份证ocr、名片ocr、文本翻译等API,初试感觉准确率一般般。b、基于python3
  • 可以,具体说明和代码见下: <%@ Language=VBScript %><%Option
  • 这篇文章主要介绍了Python hashlib常见摘要算法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,
  • 大家是否还记得1983年任天堂的著名游戏《超级玛丽》里那个留着胡子的意大利水管工人,还有日本konami公司1987年发行的射击游戏《魂斗罗
  • 在我前一阵子刚刚写了“HTML5与Flash,不得不说的话题”的评论后,如各位所料,由于牵扯到多方利益和未来标准制定的角色份量,这不,有可能
  • 装饰器的作用就是用一个新函数封装旧函数(是旧函数代码不变的情况下增加功能)然后会返回一个新函数,新函数就叫做装饰器,一般为了简化装饰器会用语
  • 关于书写习惯,遵循曾经总结过的风格标准,现在一点都没有变。并且近来翻看高手作品,横向连排似乎在大产品项目中逐渐成为主流,个人认为如此维护效率
  • 一、为什么提出python编程的核心是什么?我想要Python实现,这已经不是什么秘密了。WebAssembly它不仅会让Python进入浏
  • MySQL目前不支持列的Default 为函数的形式,如达到你某列的默认值为当前更新日期与时间的功能,你可以使用TIMESTAMP列类型下面
  • 今天再为大家提供一种方法:不需要安装Excel也可以导入到我们的SQL Server数据库。首先用SQL Server自身的数据转换功能把E
  • Python time模块时间获取和转换Time模块介绍Python的Time库可以进行时间相关的处理,如访问当前日期和时间,输出不同格式的
  • wheel文件Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改
  • 今天我们继续向大家介绍一款翻页效果的制作。当鼠标移动到链接上时,翻页的链接区除了有悬停效果,还会放大。这样的效果具有很强烈的效果。大家适当美
  • 在网站开发的时候经常要用chr(),但本人比较懒没时间记那么多。于是到用到的时候就查,这样麻烦。现在将它写出来方便以后用到查,也方便大家!c
  • 我想要向您介绍能想像到的开始 GUI 编程的最简单方法,就是使用 Scriptics 的 TK 和 Tkinter 封装器。我们将与 dev
  • 本文主要关于python的正则表达式的符号与方法。findall: 找寻所有匹配,返回所有组合的列表search: 找寻第一个匹配并返回su
  • 很多朋友希望,我能把我做网站的一些流程及经验跟大家分享一下,最近刚好做一次内部培训,所以稍微整理了一下,这些只是针对网页初学者,具有一定平面
手机版 网络编程 asp之家 www.aspxhome.com