CBV如何使用
2020-03-11 本文已影响0人
eeert2
与FBV
相比,CBV
没有视图函数,而是继承视图类View
,在url
路由系统中,指定绑定视图类的as_view()
函数
# view.py
from django.views import View
from django.http import HttpResponse
class BookView(View):
def get(self, request, *args, **kwargs):
retuen HttpResponse('get books')
def post(self, request, *args, **kwargs):
retuen HttpResponse('post books')
# urls.py
......
path('api/books/', views.BookView.as_view(), name='books'),
......
和普通的view
视图使用起来一样,在CBV
中可以有多个视图函数
,而每一个视图函数
对应一个请求方法。
如果发送的是get
请求,将执行get
方法,post
请求将执行post
方法
使用CBV
的优点:
- 对一个资源的请求放在一起,结构安排更加合理,符合
restful
风格
- 对一个资源的请求放在一起,结构安排更加合理,符合
- 当
视图函数
比较复杂时,我们会将其进行拆分,这样拆分下的辅助函数也会直接暴露在views
模块下,容易导入错误。使用CBV
后就不会有这样情况。
- 当