Python菜鸟之路:Django 路由补充FBV和CBV

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python菜鸟之路:Django 路由补充FBV和CBV相关的知识,希望对你有一定的参考价值。

  在Python菜鸟之路:Django 路由、模板、Model(ORM)一节中,已经介绍了几种路由的写法及对应关系,那种写法可以称之为FBV: function base view 。

  今天补充另外一种路由关系的写法:CBV,即:class base view , 也可以看做为面向资源编程的另外一种叫法,类似tornado中的路由写法。

1. 建立路由关系urls.py

from app01 import views

urlpatterns = [
    url(r‘^home/‘, views.Home.as_views()),
]

2. 书写处理逻辑views.py

from django.views import View
class Home(View):  # 这里需要注意,必须继承View类

    def dispatch(self, request, *args, **kwargs):
        # 调用父类中的dispatch
        print(‘before‘)  # 类似装饰器的功能
        result = super(Home,self).dispatch(request, *args, **kwargs)
        print(‘after‘)  # 类似装饰器的功能
        return result

    def get(self,request):
        print(request.method)
        return render(request, ‘home.html‘)

    def post(self,request):
        print(request.method,‘POST‘)
        return render(request, ‘home.html‘)

  

  

  

以上是关于Python菜鸟之路:Django 路由补充FBV和CBV的主要内容,如果未能解决你的问题,请参考以下文章

Django之路--第二篇

Python web框架 补充

Django之路

Python菜鸟之路一:Python基础-内置函数补充

django补充CBV和FBV模式

python---django请求-响应的生命周期(FBV和CBV含义)