視圖函數

class JsonMiddleware(MiddlewareMixin):
def process_response(self, request, response):
if isinstance(response, HttpResponse):
return response
if isinstance(response, dict):
return HttpResponse(
json.dumps(response, ensure_ascii=True, cls=DateEncoder),
content_type="application/json",
)
return HttpResponse(response)
setting配置:
process_request 方法
process_request 方法有一個參數 request,這個 request 和視圖函數中的 request 是一樣的。
process_request 方法的傳回值可以是 None 也可以是 HttpResponse 對象。
- 傳回值是 None 的話,按正常流程繼續走,交給下一個中間件處理。
- 傳回值是 HttpResponse 對象,Django 将不執行後續視圖函數之前執行的方法以及視圖函數,直接以該中間件為起點,倒序執行中間件,且執行的是視圖函數之後執行的方法。
process_response
process_response 方法有兩個參數,一個是 request,一個是 response,request 是請求對象,response 是視圖函數傳回的 HttpResponse 對象,該方法必須要有傳回值,且必須是response。
process_response 方法是在視圖函數之後執行的。
isinstance函數