问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

django怎么用cbv(2023年最新解答)

发布网友 发布时间:2024-10-08 13:07

我来回答

1个回答

热心网友 时间:2024-12-05 16:43

导读:很多朋友问到关于django怎么用cbv的相关问题,本文首席CTO笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!

Django报错:AttributeError:'function'objecthasnoattribute'as_view'

在学习Django视图策略的时候,使用基于类的视图(CBV),遇到了一个问题:

先简单介绍一下CBV:

我的视图如下:

url:

最终在StackOverflow上找到了答案,在这个类上不能使用@login_required这个装饰器,而需要使用method_decorator,并传递一个装饰器(或一个装饰器列表)并告诉应该装饰哪个类。在CBV中,装饰调度类是很常见的。它是一个Django内部使用的方法(在View类中定义)。所有的请求都会经过这个类,所以装饰它会相对安全。如下,注意导入模块fromdjango.utils.decoratorsimportmethod_decorator:

这样问题就解决了,这里贴上StackOverflow原回答链接:Django/python:'function'objecthasnoattribute'as_view'-StackOverflow

对前后端分离设计模式的理解总结(部分Django描述)

FBV:Functionbaseview基于方法的视图

CBV:Classbaseview基于类的视图

所以之后我了解到,其实是我没有了解FBV与CBV的概念。

正所谓:类就是把数据封装进对象里,并赋予对象行为的能力。

所以我们完全可以把一个需求的接口封装成为一个类:

因为继承了django的View类,所以在默认情况下,会自动根据请求类型映射该类中对应的请求方法。

但是在所有的pythonweb框架乃至一些其他语言的框架之中,对HTTP请求类型的方法映射都是由一个专门的反射函数来实现的。

所以,总结如下:

另外值得一提的是:自己那个类中的dispatch方法中如果不自己去映射而是调用父类(django的View)的dispatch方法,另外还在前后做一些附加操作,这样的功能跟“装饰器”就很相似了。

一共有10个项目,那让我们一起来慢慢学习吧!

300系列:重定向类

400系列:客户端错误

500系列:服务端错误

如何正确使用DjangoForms

Djangoforms使用容易,又方便扩展,因此Djangoadmin和CBVs基本都基于forms使用.事实上,由于djangoforms的强大验证功能,大多数DjangoAPI框架都是用forms作为其验证的一部分.

虽然djangoforms的学习需要花费一点时间,但如果将forms,models和views结合起来使用,可以花费很少的经历来完成庞大的工作.

1.DjangoForms的强大之处

有些django项目并不直接呈现HTML,二是以API框架的形式存在,但你可能没有想到,在这些API形式的django项目中也用到了djangoforms.djangoforms不仅仅是用来呈现HTML的,他们最强的地方应该是他们的验证能力.下面我们就介绍几种和Djangoforms结合使用的模式:

2.模式一:ModelForm和默认验证

最简单的使用模式便是ModelForm和model中定义的默认验证方式的组合:

#myapp/views.py

fromdjango.views.genericimportCreateView,UpdateView

frombraces.viewsimportLoginRequiredMixin

from.modelsimportArticle

classArticleCreateView(LoginRequiredMixin,CreateView):

model=Article

fields=('title','slug','review_num')

classArticleUpdateView(LoginRequiredMixin,UpdateView):

model=Article

fields=('title','slug','review_num')

正如以上代码中看到的一样:

ArticleCreateView和ArticleUpdateView中设置model为Article

两个view都基于Articlemodel自动生成了ModelForm

这些ModelForm的验证,是基于Articlemodel中定义的field转换而来的

3.模式二,在ModelForm中修改验证

在上面的例子中,如果希望每篇articletitle的开头都是"new",那么应该怎么做呢?首先需要建立自定义的验证(validator):

结语:以上就是首席CTO笔记为大家整理的关于django怎么用cbv的全部内容了,感谢您花时间阅读本站内容,希望对您有所帮助,更多关于django怎么用cbv的相关内容别忘了在本站进行查找喔。

声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
天赐材料为什么暴跌 天赐材料和隆基股份区别 空压机的压缩比是什么 loadrunner C/S架构录制中文乱码问题 loadRunner9.50 树形视图 server response中文乱码 一部介绍中国的视频,旁白是英文女声,台词大概是【this is china'riv... 朕亡亦将化身为龙魂是哪个电视剧里的台词? 长春市政府信息中心工作是属于什么性质的工作?工作如何?请明白人赐教... 市政府办公室信息技术中心这个岗位是政府办的下属事业单 政府办信息中心是做什么工作的 a³-a²b+ab²-ac²+bc²-b³=0这道题怎么做啊? 急求a3-b3/a-b的化简值!(a的三次方减b的三次,比a-b的化简式) |a3-b3|=|(a-b)|(a2+ab+b2)为啥?难道a2+ab+b2一定≥0,我觉得这也应该加... 已知A,B分别为曲线C,X^2/a^2+y^2=1(y≥0,a>0)与X轴的左右两个交点,直线... ...0(x=0)\1(x>0)},则当a≠b时,[a+b+(a-b)×f(a-b)]/2的值. 监理工程师需要一次性考过吗 必争武林秘籍-Vue生命周期流程图 我的QQ空间打不开,总显示''403 Forbidden nginx/1.0.11''.为什庅? ...403 Forbidden nginx/0.7.66 怎么解决呀帮帮忙吧 vue destroyed什么时 中考总分就438分,在莆田市的,能上哪个高中? .../1.6.2 你好我点开360浏览器出现这种情况要怎么办 中考所有科门加起来一共要多少分及格? 王俊凯中考总分多少? 群落是什么意思? 买手机时用身份证办联通3G卡,现已欠费59元。如果不交对我有什么影响吗... 我弟弟拿我身份证办了张联通3G的卡,内时候我刚到16 ,后来他手机丢了,也... 我想换联通3G卡66元套餐,但是我现在用的是移动的动感地带卡,跟媳妇办了... 我想办一张全国漫游的卡,我打电话打得比较多,经常出差,不知道是办移... 三星sm-n915fy安全模式无法退出 5d3中"文件夹"怎样删除 F盘中有这个叫637af5d37ed8cc5901cad349的文件夹,删不掉,怎么办?求高... 佳能5D3文件夹满后为什么不重新编号 cbedea21305d39ce0ffe3850文件夹是做什么? 影能E6高清网络播放器采用的是什么方案 Echoii E6s(320G)功能参数 Echoii E6s(500G)功能参数 海信E6娱乐功能 如何通过影能E6人体智能网络播放器在电视上显示整个IPAD的操作界面 ABB的xx网名 亚麻籽油凝胶糖果危害 梦见死了10多年的爸爸生病死了,然后我和哥哥给爸爸准备后事,然后... 王者荣耀救赎之翼怎么样 王者荣耀救赎之 梦见去世的爸爸又在病危中而且手烂了叫他不理还有老公已去世的奶奶又... 王者荣耀救赎之翼和近卫荣耀怎么选介绍_王者荣耀救赎之翼和近卫荣耀怎么... 猫得猫瘟了还能活吗? 猫得了猫瘟能活多久 猫瘟几天不死就有希望 第几天最凶险 一个女孩的性格大家帮帮忙分析一下,她不爱说话甚至到了能不说就不说... 请帮忙分析两个女生,一个老在我面前说不喜欢我,可天天还和我主动说话...
  • 焦点

最新推荐

猜你喜欢

热门推荐