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

drf基本使用

时间:2019-12-01 13:17:24      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:stat   ima   imp   安装   图片   message   中间件   tps   技术   

1、安装djangorestframework

pip install djangorestframework -i https://pypi.doubanio.com/simple

 

2、创建一个drf01的应用,来使用 drf ;  并在一个django工程settings.py中, 应用里面注册 rest_framework应用 、drf01应用

技术图片

 

3、编写drf01/views.py里的视图

from django.shortcuts import render, HttpResponse
from django.views import  View
from django.http import JsonResponse

class Users(View):
    def get(self, request, *args, **kwargs):
        return JsonResponse(
                {
                    "status": "200",
                    "message":" django get ok",
                    "results" : []
                }
            )
    def post(self,request,  *args, **kwargs):
        return JsonResponse(
                {
                    "status": "200",
                    "message":" django post ok",
                    "results" : []
                }
            )

    def put(self,request,  *args, **kwargs):
        print( request.FILES)
        print(request.POST)
        print( request.GET)
        print(request.body)
        return JsonResponse(
                {
                    "status": "200",
                    "message":" django put ok",
                    "results" : []
                }
            )


from rest_framework.views import  APIView
from rest_framework.response import  Response

class Teachers(APIView):

    def get(self, request, *args, **kwargs):
        print(request.GET)
        return Response(
            {
                "status": "200",
                "message": " django restframework get ok",
                "results": []
            }
        )

    def post(self, request, *args, **kwargs):
        print(request.data)
        return Response(
            {
                "status": "200",
                "message": " django restframework post ok",
                "results": []
            }
        )

    def put(self, request, *args, **kwargs):
        print(request.data)
        return Response(
            {
                "status": "200",
                "message": " django restframework put ok",
                "results": []
            }
        )

    def patch(self, request, *args, **kwargs):
        print(request.data)
        return Response(
            {
                "status": "200",
                "message": " django restframework patch ok",
                "results": []
            }
        )

    def delete(self, request, *args, **kwargs):
        print(request.data)
        return Response(
            {
                "status": "200",
                "message": " django restframework delete ok",
                "results": []
            }
        )

 

4、注释掉crsf中间件; django自带的请求中,有csrf_token来做跨站请求防攻击;所以,测试django原生的post/put/patch/delete方法,需要注释掉csrf中间件;

但是 drf中as_view()调用了django中原生的as_view()方法, 但是局部禁用了csrf;

技术图片

 

 

5、在drf01应用下urls.py里面配置路由

技术图片

 

 

6、在工程下配置路由分发,将drf01请求分发到drf01路由下进行处理;

技术图片

 

 

7、django中,CBV原生的五种请求方法,   get请求参数中在request.get ;  put请求参数在 request.body中

技术图片

 

 

技术图片

 

 技术图片

 

 

8、使用postman方式请求的使用,“teachers/”最后的斜杠要带上, 因为在浏览器中输入如果不带斜杠, django或者drf都会自动给带上,但是在postman里面不会,只能自己手动带上;

 

 技术图片

 

 

技术图片

 

 

 

 

drf基本使用

标签:stat   ima   imp   安装   图片   message   中间件   tps   技术   

原文地址:https://www.cnblogs.com/harryTree/p/11965631.html

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