Django View层公共类调用的问题?

Django View层公共类调用的问题?

目标:
我依据项目规范封装了一个HTTP返回类,在每个函数返回时,调用返回类response返回相应的内容。
问题:
Django每次请求并不会重新实例化我的返回类,这导致多次请求有时会返回相同的内容。然而我为类的一些属性设置了默认值,在不改变默认值的情况下,返回应当是默认值才对。

代码:
Response类(代码非真实代码,逻辑大体相同,请勿吐槽此类的作用)

from django.http import JsonResponse

class ApiResponse:

def __init__(self):

self.status_code = 200

def set_status_code(self, status_code):

self.status_code = status_code

def get_status_code(self):

return self.status_code

def __error(message="Internal Error"):

return JsonResponse({"status": "error", "message": message, "status_code":self.get_status_code()})

def fail(self, message):

self.set_status_code(400)

return self.__error(message)

def success(self, message):

return JsonResponse({"status": "ok", "message": message})

View层:

from api_response.api_response import ApiResponse

response = ApiResponse()

def login(request):

if request.method == "POST"

#code....

return response.success("登录成功")

else:

return response.fail("不支持的方法")


回答:

全局变量对于单进程http服务器来说只实例化一次没毛病.你放到login里面就好了

from api_response.api_response import ApiResponse

def login(request):

response = ApiResponse()

if request.method == "POST"

#code....

return response.success("登录成功")

else:

return response.fail("不支持的方法")

以上是 Django View层公共类调用的问题? 的全部内容, 来源链接: utcz.com/a/159546.html

回到顶部