restframework 自定義返回響應格式


代碼實現

只需要繼承rest_framework.responseResponse,重寫self.data即可

from rest_framework.response import Response


class MyResponse(Response):
    def __init__(self, code=10000, msg="Success", data="", status=None,
                 template_name=None, headers=None,
                 exception=False, content_type=None):
        super(MyResponse, self).__init__(data, status, template_name, headers,
                                         exception, content_type)

        self.data = {"code": code, "msg": msg, "data": data}

在視圖中調用

# 自定義的響應返回格式類
from libs.success import MyResponse


class Login(APIView):
    authentication_classes = []

    def post(self, request):
        username = request.data.get('username')
        password = request.data.get('password')
        user = User.objects.filter(phone=username).first()
        if user and user.check_pwd(password):
            r_dict = {'token': create_token({'user_id': user.id})}
            add_user.delay(username)

            con = get_redis_connection("default")
            con.set('token', create_token({'user_id': user.id}), 60)
            return MyResponse(data=r_dict)
        # 通過傳入參數比如http狀態碼(status=301)
        return MyResponse(code=40000, msg="賬號或密碼錯誤", data='' status=301)

正常參數

異常參數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM