django中自定义中间件 MiddlewareMixin的示例

root
abc abc
  • 20 Jul

from django.utils.deprecation import MiddlewareMixin
from django.http import JsonResponse

class FileSizeLimitMiddleware(MiddlewareMixin):
def process_request(self, request):
if request.method == 'POST':
try:
limit_size = 10 1024 1024 # 例如限制为10MB
file_size = request.FILES['file'].size
if file_size > limit_size:
return JsonResponse({'error': 'File is too large (max 10MB)'}, status=400)
except KeyError:

            # 没有文件或者文件字段名称不正确
            return JsonResponse({'error': 'No file provided'}, status=400)
    return None