django类视图的实现

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/g_optimistic/article/details/89160934

目录

一、resetful设计思路

二、视图类的优点

三、使用视图类的步骤

1.导入视图类的基类

2.继承重写需要的http方法   get  post  delete  head  put.....

3.在urls.py当中指出as_view


一、resetful设计思路

resetful接口开发的思路,前后端分离,这样网站可以接收非浏览器用户的访问,对于大规模批量的操作,有很好的效果

resetful要求不可以带动词

比如说:

addStudent   delStudent  都不可以

优化网站的思路:

前后分离 前后端分离
动静分离 数据库优化
读写分离  

 

二、视图类的优点

(1)视图类方便继承重写

(2)视图类更加直观

(3)视图类更加符合resetful设计思路

三、使用视图类的步骤

1.导入视图类的基类

from django.views import View

2.继承重写需要的http方法   get  post  delete  head  put.....

重写的是View类

打来View的源码,发现http的方法有很多种

在Student app下的views.py下写视图类:

from django.views import View
class StudentView(View):
    def __init__(self,**kwargs):
        super(StudentView).__init__(**kwargs)
        self.student=Student.objects.all()
    def get(self,request):
        """
        处理get请求
        :param request:
        :return:
        """
        return JsonResponse({"data":"this is get method"})
    def post(self,request):
        """
        处理post请求
        :param request:
        :return:
        """
        return JsonResponse({"data":"this is post method"})
    def put(self,request):
        """
        处理get请求
        :param request:
        :return:
        """
        return JsonResponse({"data":"this is put method"})
    def delete(self,request):
        """
        delete
        :param request:
        :return:
        """
        return JsonResponse({"data":"this is delete method"})

class TeacherView(StudentView):
    pass

3.在urls.py当中指出as_view

from Student.views import StudentView
urlpatterns=[
    path('stu/',StudentView.as_view),
    
]

启动服务器

请求界面,所以会返回get方法

猜你喜欢

转载自blog.csdn.net/g_optimistic/article/details/89160934