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')
FBV:
刚开始学的就是FBV
装饰器?
· 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应用必不可少的技术