经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Django » 查看文章
详解Django中的FBV和CBV对比分析
来源:jb51  时间:2021/3/1 10:47:42  对本文有异议

在学习Django过程中在views.py进行逻辑处理时接触到了两种视图的书写风格,FBV和CBV

FBV 指 function based views,即基于函数的视图

CBV 指 class based views,即基于类的视图

基于类的视图相较于基于函数的视图可以更加便利的实现类的继承封装等。在日常使用的时候,二者的区别主要在于对于request的请求方法的处理方式

FBV

我们通过函数传入的request的method来判断客户端发起的是什么请求,并进行相应的操作,返回相应的数据。

  1. def fbv(request):
  2. if request.method == 'GET':
  3. return HttpResponse("GET")
  4. elif request.method == 'POST':
  5. return HttpResponse("POST")
  6. else:
  7. return HttpResponse("OTHER")

在urls.py中,我们使用下面的格式来书写路径

  1. path('test/', views.fbv),

CBV

我们在类中定义相应请求的方法,并在方法中实现相应的逻辑处理并返回相应的数据,这种基于类的视图很适用于restful风格的书写。

  1. class CBV(View):
  2. @csrf_exempt
  3. def get(self):
  4. return HttpResponse("GET")
  5.  
  6. @csrf_exempt
  7. def post(self):
  8. return HttpResponse("POST")
  9.  
  10. @csrf_exempt
  11. def put(self):
  12. return HttpResponse("PUT")
  13.  

在urls.py中,我们使用下面的格式来书写路径

  1. path('test/', views.cbv.as_view()),

到此这篇关于 详解Django中的FBV和CBV对比分析的文章就介绍到这了,更多相关Django FBV和CBV对比 内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号