码迷,mamicode.com
首页 > 其他好文 > 详细

CBV-1-面向对象-封装

时间:2018-07-08 20:37:42      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:结果   面向对象   功能   top   nts   数据   user   flow   ima   

 

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-面向对象-封装

标签:结果   面向对象   功能   top   nts   数据   user   flow   ima   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!