CBV-1-面向对象-封装

Posted yimiflh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.多态

 



以上是关于CBV-1-面向对象-封装的主要内容,如果未能解决你的问题,请参考以下文章

Java中面向对象的三大特性之封装

python之路之前没搞明白4面向对象(封装)

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

Java 封装

Java 封装