视图函数:CBV与FBV (ps:补充装饰器)

Posted 磕伴

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视图函数:CBV与FBV (ps:补充装饰器)相关的知识,希望对你有一定的参考价值。

 CBV 基于类的视图  FBV 基于函数的视图  

CBV:

 1 项目目录下:
 2 urlpatterns = [
 3     path(\'login1/\',views.Login.as_view())    #.as_view()固定格式,自
 4 ]
 5  #.as_view()固定格式,自匹配类中的下面的方法(须自定制)
 6  http_method_names = [\'get\', \'post\', \'put\', \'patch\', \'delete\', \'head\', \'options\', \'trace\']
 7 
 8 Ajax提交(方法多)方便分门别类
 9 
10 常用约定俗成:\'get\'(查), \'post\'(创建), \'put\'(更新),  \'delete\'(删除),
11 
12 #自动执行,内部通过反射来做,先执行View里面的dispatch,拿到方法然后做反射到get、post、等自动执行
13 
14 app01目录下:
15 from django.views import View
16 class Login(View):
17 
18     def dispatch(self, request, *args, **kwargs):
19         print(\'before\')    
20 # 类似装饰器  先执行before   再执行after  中间的就是下面方法执行结果
21         obj=super(Login,self).dispatch(request, *args, **kwargs)
22         print(\'after\')
23         return obj
24 
25     def get(self,request):
26         return render(request, \'login1.html\')
27     
28     def post(self,request):
29         print(request.POST.get(\'title\'))  
30         return  HttpResponse(\'ok\')
View Code

FBV:

刚开始学的就是FBV

 

装饰器?

 

以上是关于视图函数:CBV与FBV (ps:补充装饰器)的主要内容,如果未能解决你的问题,请参考以下文章

Django学习之视图

Django视图系统 -- 2019-08-11 19:36:29

添加登录装饰器的两种方式:FBV和CBV

FBV与CBV 及CBV源码分析

Django视图函数之FBV与CBV模式

基于Django-Cookie的CBV和FBV的用户验证装饰器