CBV-1-面向对象-封装

CBV-1-面向对象-封装

 

CBV,基于反射实现根据请求方式不同,执行不同的方法。

    1. 开发模式
        - 普通开发方式(前后端放在一起写)
        - 前后端分离
    
    2. 后端开发
        为前端提供URL(API/接口的开发)
        注:永远返回HttpResponse

 什么是接口?

后端写一个简单的接口:

urls.py

views.py

url访问接口:

 3. Django FBV、CBV

FBV,function base view

CBV,class base view

url必须继承as.view()

视图必须继承view.  这是固定搭配!!!

 运行结果:get请求

运行结果:post请求

用一个工具,模拟发post请求:

注意:setting.py必须先关闭csrf

CBV的优势:  FBV需要判断请求方式。本质都是一样的,一个是基于类写的,一个基于函数写的。

 代码:

    3. Django FBV、CBV
        FBV,function base view
            def users(request):
                user_list = ['alex','oldboy']
                return HttpResponse(json.dumps((user_list)))
                
        CBV,class base view 
            路由:
                url(r'^students/', views.StudentsView.as_view()),
            
            视图:
                from django.views import View

                class StudentsView(View):

                    def get(self,request,*args,**kwargs):
                        return HttpResponse('GET')

                    def post(self, request, *args, **kwargs):
                        return HttpResponse('POST')

                    def put(self, request, *args, **kwargs):
                        return HttpResponse('PUT')

                    def delete(self, request, *args, **kwargs):
                        return HttpResponse('DELETE')

 4. 列表生成式

 

 5. 面向对象

 *谈谈你对面向对象的认识? 

  1. 封装

    - 对同一类方法封装到类中 

    - 将数据封装到对象中

 

  2.继承(多个类共用的功能,为了避免重复编写):

1.假设在每一个视图中的get方法,执行前后后都要加上一段代码,你会怎么办?

2.两个类都有同一个方法,让它们都继承一个基类。

  3.多态

原文地址:https://www.cnblogs.com/yimiflh/p/9281119.html