Django中的FBV和CBV区别
1、fbv就是在url中一个路径对应一个函数
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', views.index)
]
在视图函数中
def index(request):
return render(request, 'index.html')
2.cbv就是在url中一个路径对应一个类
from goods.views_base import GoodsListView
urlpatterns = [
# url(r'^admin/', admin.site.urls),#默认是注释的
url(r'^xadmin/', xadmin.site.urls),#t添加
url(r'^media/(?P<path>.*)$', serve, {"document_root": MEDIA_ROOT}),
#商品列表
url(r'^goods/$',GoodsListView.as_view(),name="goods_list")
]
在视图函数中
from django.views.generic import View
class IndexView(View):
# 以get形式访问会执行get函数,一般情况下获取数据
def get(self, *args, **kwargs):
return HttpResponse('666')
# 以post形式访问的话会执行post函数,一般情况下发送数据
def post(self, *args, **kwargs):
return HttpResponse('999')
注意:
- cbv定义类的时候必须要继承view
- 在写url的时候必须要加as_view
- 类里面使用form表单提交的话只有get和post方法
- 类里面使用ajax发送数据的话支持定义以下很多方法
restful规范:'get'获取数据, 'post'创建新数据, 'put'更新, 'patch'局部更新, 'delete'删除, 'head', 'options', 'trace'