python_django_类视图的第一次忐忑碰触!!!
我们Django学到这里,基础知识阶段是已经完成了!!
在我们前面接触到的视图都是基于函数的视图函数我们可以称它为FBV,而今天我们新接触的就是视图函数的另一类CBV:基于类的视图函数,我们这里拓展这个知识也是为了给后面学习RESTful框架打基础,因为python的RESTful框架可能会完全推翻前面我们学习到的Django基础知识,但是MVC架构是不变的哈。
第一个CBV视图函数:
# views.py
from django.http import HTTPResponse
from django.views import View
class HelloCBV(View):
msg=None
def get(self,request): # 只接收get请求
return HTTPResponse('get request') def post(self,request): # 只接收post请求
return HTTPResponse('post request') def put(self,request): # 只接收put请求
return HTTPResponse('put request')
对应的urls.py
# urls.py
from django.urls import path
from . import views app_name = 'my_app'
urlpatterns = [
path('test/', views.test),
path('books/',views.HelloCBV.as_view(), name='books')
]
从上面的views.py函数我们可能注意到了,get/post/put作为了函数方法名,这里的方法名就比较神奇了,因为他就是拿来接收我们客户端的get/post/put请求的。我也觉得超级神奇!!
为啥会这么神奇呢??
因为我们类视图继承了View这个大类,所以连带着我们urls.py中接口的地方,都变成了
views.HelloCBV.as_view()
正因为这个as_view() 所以我们才会看到上面这么神奇的事。
我们阅读as_view()的源代码发现它是View类的方法,而View方法可以直接这样干的请求还有:
http_method_names = ['get', 'post', 'put', 'patch', 'delete', 'head', 'options', 'trace']
由此可知,我们上面这些方法也阔以这么干,嘿嘿嘿 ヾ(´∀`.ヾ)。
注意!!!
- 我们as_view()中可以传递参数,但是参数名称不能是get/post等请求方法名!!
好的,以上就是我今天摸了一下类视图函数的感觉,手感不错哦!!
python_django_类视图的第一次忐忑碰触!!!的更多相关文章
- Visual studio 类视图和资源视图不显示的问题
关于Visual studio 类视图和资源视图不显示的问题 解决方法: 1. 工具—选项—文本编辑器—C/C++—高级,浏览/导航下的禁用数据库选项置为False; 2. 输入命令:devenv / ...
- visual studio2010 “类视图”和“对象浏览器”图标
“类视图”和“对象浏览器”显示一些图标,这些图标表示代码实体,例如命名空间.类.函数和变量. 下表以图文并茂的形式说明了这些图标. 图标 说明 图标 说明 namespace 方法或函数 类 运算符 ...
- 在DJANGO的类视图中实现登陆要求和权限保护
以前接触的是基于函数的保护,网上材料比较多. 但基于类视图的很少. 补上! Decorating class-based views 装饰类视图 对于类视图的扩展并不局限于使用mixin.你也可以使用 ...
- Django内置的通用类视图
1.ListView 表示对象列表的一个页面. 执行这个视图的时候,self.object_list将包含视图正在操作的对象列表(通常是一个查询集,但不是必须). 属性: model: 指定模型 te ...
- Part 4:表单和类视图--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- Django学习笔记之视图高级-类视图
类视图 在写视图的时候,Django除了使用函数作为视图,也可以使用类作为视图.使用类视图可以使用类的一些特性,比如继承等. View django.views.generic.base.View是主 ...
- Django 类视图
引文 所有的类视图都继承django.views.generic.base.View类. 在URLconf中简单的使用通用视图 如果只是简单的做一些属性修改,可以使用as_view()方法,如下所示: ...
- python的Web框架,类视图
类视图 范式 from django.views import View # 继承View class IndexView(View): def get(self, request): #写法和函数视 ...
- Django框架的使用教程--类视图-中间间-模板[六]
类视图 类视图的使用 视图函数 class class_view(View): """类视图""" def get(self, reques ...
随机推荐
- 三、TortoiseSVN 单独拉取项目某个文件
一.项目拉取后,单独对某个文件拉取 实践中会出现这样的问题,在svn 中 我项目 ,已经拉取了,但是 某个文件改乱了 ,想从新对某个文件拉取 . 解决方案:1.删除某个文件,从新更新获取-右击该文件上 ...
- IPv6 关于路由器配置静态IPv6路由的命令
今天在学习路由器配置ipv6 的时候遇到了一点疑惑 一条命令为:ipv6 route FE80:0202::/32 serail 0/1 201 一条命令为:ipv6 route FE80:0202: ...
- windows系统下MySQL中遇到1045问题
报错内容为"1045 Access denied for user 'root'@'localhost' (using password:YES)",对应的原因是密码错误,如 ...
- vue img标签用法
:符号是v-bind的缩写 服务器图片路径和请求本地路径 <img class="v-step-0" id="avatar" :src="myP ...
- Sql语法整理-图片版....
- MariaDB PHP语法
MariaDB与各种编程语言和框架(如PHP,C#,JavaScript,Ruby on Rails,Django等)合作良好. PHP仍然是所有可用语言中最受欢迎的语言,因为它的简单性和历史足迹. ...
- boost库:函数对象
函数对象是指那些可以被传入到其它函数或是从其它函数返回的一类函数. 1. boost::bind bind提供了一个机制,是函数与几乎不限数量的参数一起使用,就可以得到指定签名的函数.bind会复制传 ...
- jquery实现给循环的每一项加上不同的样式
项目中需要实现这样的效果,模块中需要展示若干的商品,这些商品的分类名称需要显示不同的背景色,一共提供了三种背景色做选择, 这样的话就需要用这三种颜色做循环,一开始我的思路是做随机分配颜色,但是这样的话 ...
- asp.net ToString() 输出格式详细
C 货币 2.5.ToString("C") ¥2.50 D 十进制数 25.ToString("D5") 00025 E 科学型 25000.ToString ...
- Selenium webdriver 安装(一)
6年的.NET开发,干过小项目,做过研发,任何架构.设计模式.各种文档齐全.技术大牛,给我最深的体会是都不如用户最后的轻轻一点,一下毁所有.这个时候我突然想起了一首歌<都选C>哈哈.如何防 ...