Django1.11中的FBV和CBV区别

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'
  • 参考链接:https://www.jianshu.com/p/a3e6217d7bee

猜你喜欢

转载自blog.csdn.net/xiaoming0018/article/details/81386502
今日推荐