Django中的类视图与函数视图之间的区别
2019-01-13 02:09
162 查看
以函数的方式定义的视图称为函数视图,函数视图便于理解。但是遇到一个视图对应的路径提供了多种不同HTTP请求方式的支持时,便需要在一个函数中编写不同的业务逻辑,代码可读性与复用性都不佳。
代码如下:
def register(request): """视图函数:处理注册""" #获取请求方法,判断是GET/POST请求 if request method == 'GET': #处理GET请求,返回注册页面 return render(request, 'register.html') else: #处理POST请求,实现注册逻辑 return HttpResponse('这里是实现注册逻辑')
使用类视图可以将视图对应的不同请求方式以类中的不同方法来区别定义。
代码如下:
from django.views.generic import View class RegisterView(View): """类视图:处理注册""" def get(self, request): #处理GET请求,返回注册页面 return render(request, 'register.html') def post(self, request): #处理POST请求,实现注册逻辑 return HttpResponse('这里实现注册逻辑')
类视图的好处:
- 代码可读性好
- 类视图相对于函数视图有更高的复用性, 如果其他地方需要用到某个类视图的某个特定逻辑,直接继承该类视图即可
相关文章推荐
- 表,视图,存储过程,函数之间的区别
- PHP echo,print,printf,sprintf函数之间的区别与用法详解
- exit函数和_exit函数之间的区别
- JavaScript全面了解函数之间的区别
- django url配置与视图函数的对应关系
- Django objects.all() ,objects.get() ,objects.filter()之间的区别
- Django objects.all()、objects.get()与objects.filter()之间的区别介绍
- 父子类之间,成员函数重写、重载以及重定义的区别
- 带参数宏和函数之间的区别
- Document-View Interaction Functions视图与文档之间的通讯函数
- django--视图函数的包装(Wrapping view function)
- 静态和非静态成员,函数之间到底区别在哪里了?
- Django objects.all()、objects.get()与objects.filter()之间的区别介绍
- MFC中处理消息的几个函数之间的区别
- 视图和表之间的区别和联系
- MVC ,Action方法传数据给视图有几种方式?--PS:tempData和Viewbag,还有ViewData之间的区别
- Django来敲门~第一部分【6.1 视图函数】
- C语言教学--函数之间传值和传址的区别
- [置顶] 浅谈javascript之事件、函数、方法、对象 各代表何含义,通俗解释及其之间的关联与区别
- Django中传递参数到URLconf的视图函数中的方法