# urls.py에 해당 api를 들어올 수 있도록 url을 만들어 준다.
re_path(r'^inner/static/$', static_serving),


# view에 작성할 파일 

import mimetypes

# static 경로 설정(static파일 경로에 있는 파일을 다운로드)
STATIC_ROOT = getattr(settings, 'STATIC_ROOT')


@api_view(['GET'])
def static_serving(request):

    file_name = request.GET.get('filename', '')

    if file_name == '':
        return None


    fl_path = STATIC_ROOT+'/{}'.format(file_name)
    filename = file_name

    fl = open(fl_path, 'r')
    mime_type, _ = mimetypes.guess_type(fl_path)
    response = HttpResponse(fl, content_type=mime_type)
    response['Content-Disposition'] = "attachment; filename=%s" % filename


    return response

장고로 static 파일을 다운받을 수 있는 경로를 만들어줄 수 있다.

해당 경로로 filename을 담아서 요청을 하게 되면 파일을 다운 받을 수 있다.
다운로드 요청 경로

https://127.0.0.1:8000/inner/static/?filename='hello.py'


 

+ Recent posts