• Django之FBV和CBV模式


    FBV就是 url路由>>>业务处理函数的方式,CBV就是url路由>>>类 的处理业务方式。

    最常用的就是FBV模式,就不用过多赘述,直接上CBV的实用代码。 

    1、CBV的url路由该怎么写?

     1 from django.contrib import admin
     2 from django.urls import path
     3 from django.conf.urls import url
     4 from app01 import views
     5 
     6 urlpatterns = [
     7     path('admin/', admin.site.urls),
     8     url(r"cbv",views.cbv.as_view()),
     9     url(r"fbv",views.fbv),
    10 ]

    2、CBV的view视图中的业务处理类该怎么写?

     1 from django.shortcuts import render,redirect,HttpResponse
     2 from django.views import View
     3 # Create your views here.
     4 def fbv(request):
     5     if request.method=="POST":
     6         return HttpResponse("fbv.post")
     7     return render(request, "FBV.html")
     8 
     9 
    10 class cbv(View): 
    11     def dispatch(self, request, *args, **kwargs):
    12         if request.method=="GET":
    13             print("get方式经过dispatch...")
    14         else:
    15             print("post方式经过dispatch...")
    16         result=super(cbv, self).dispatch(request, *args, **kwargs)
    17         return result
    18 
    19     def get(self,request):
    20         return render(request, "CBV.html")
    21 
    22     def post(self,request):
    23         return HttpResponse("cbv.post")

    具体格式参考上述代码,在CBV的view视图类中,每次执行GET或者POST函数时都先经过dispatch方法,因此可以在dispatch方法中定制一些GET和POST方法执行前公共的业务逻辑代码,从而简化代码。也可以在dispatch方法中定制自己想要的功能。

  • 相关阅读:
    数据库连接池
    一致性hash
    java 集合大家族
    linkedlist
    HashMap
    hashcode
    Job 逻辑执行图
    CDN
    网站缓存
    Mysql临时文件目录控制
  • 原文地址:https://www.cnblogs.com/sun-10387834/p/12459952.html
Copyright © 2020-2023  润新知