Django视图函数: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

 

装饰器?

 

posted @   磕伴  阅读(92)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示