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 ...
随机推荐
- SGU438 The Glorious Karlutka River =)
传送门 sgu原来搬到cf了呀点了好几个链接才找到233 传说中的动态流(?) 反正很暴力就对了QwQ 有容量限制->拆点 对于每个点拆成入点和出点 时间限制->分层 对于每个时刻的每个石 ...
- 小程序内嵌H5页面判断微信及小程序环境
判断微信及小程序环境 1.H5页面引入jweixin-1.3.2.js 2. var ua = window.navigator.userAgent.toLowerCase(); if(ua.matc ...
- PostgreSQL按年月日分组(关键词:extract time as Year/Month/Day)
Select EXTRACT(year from cast(joindate as timestamp)) as Year, EXTRACT(month from cast(joindate as t ...
- python学习--第二天 爬取王者荣耀英雄皮肤
今天目的是爬取所有英雄皮肤 在爬取所有之前,先完成一张皮肤的爬取 打开anacond调出编译器Jupyter Notebook 打开王者荣耀官网 下拉找到位于网页右边的英雄/皮肤 点击[+更多] 进入 ...
- PHP copy() 函数
定义和用法 copy() 函数复制文件. 该函数如果成功则返回 TRUE,如果失败则返回 FALSE. 语法 copy(file,to_file) 参数 描述 file 必需.规定要复制的文件. to ...
- UNP学习 ioctl操作
一.ioctl函数 #include <unistd.h> int ioctl(int fd, int request, ... /* void * arg */); 返回:成功0,出错- ...
- linux c开发项目过程总结
软件工程有瀑布模型,迭代模型等. 使用linux c语言来开发项目,当然也是遵循这样的思想,先要问题定义-->需求分析--->原型设计---->编码及单元测试--->集成测试及 ...
- leetcode上的一些分治算法
53- 思路: 95- 思路
- error LNK2005: __get_invalid_parameter_handler 已经在 LIBCMTD.lib(invarg.obj) 中定义
转自VC错误http://www.vcerror.com/?p=166 问题描述: 在用vs2012编译程序的时候,release版本正常编译通过,但Debug版本提示下面的很多错误; 1>LI ...
- PHP面试 linux基础
Linux基础 Linux常用命令 系统安全:sudo su chmod setfacl 进程管理:w top ps kill pkill pstree killall 用户管理 ...