관리 메뉴

웹개발자의 기지개

[Django] @csrf_exempt 사용 본문

python/Django

[Django] @csrf_exempt 사용

http://portfolio.wonpaper.net 2022. 4. 20. 00:56

csrf 방식을 간단히 해제 시키는 전처리기이다.

 

특히 API 만들때 @csrf_exempt 이런식으로 간단히 삽입해서 이용한다.

 

 

1
2
3
4
5
6
7
from django.http import HttpResponse
from django.views.decorators.csrf import csrf_exempt
 
@csrf_exempt
def my_view(request):
    return HttpResponse('Hello world')
 
cs

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
from django.http import JsonResponse
from django.views import View
from django.views.decorators.csrf import csrf_exempt
 
@csrf_exempt
class API(View):
    def get(self, request):
        json = {'code''get'}
        return JsonResponse(json)
 
    def post(self, request):
        json = {'code''post'}
        return JsonResponse(json)
 
    def put(self, request):
        json = {'code''put'}
        return JsonResponse(json)
 
    def delete(self, request):
        json = {'code''delete'}
        return JsonResponse(json)
 
cs

url.py

 

1
2
3
4
urlpatterns = [ 
    path('api/test', api.API.as_view(), name='api'),
]
 
cs

 

 

또는 아래과 같이 할 수도 있겠다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
 
@csrf_exempt
def api(request):
    if request.method == "GET":
        json = {'code''get'}
        return JsonResponse(json)
 
    if request.method == "POST":
        json = {'code''post'}
        return JsonResponse(json)
 
    if request.method == "PUT":
        json = {'code''put'}
        return JsonResponse(json)
 
    if request.method == "DELETE":
        json = {'code''delete'}
        return JsonResponse(json)
cs

 

1
2
3
urlpatterns = [ 
    path('api/test', api.api, name='api'), 
]
cs

 

출처 : https://taptorestart.tistory.com/entry/Q-%EC%9E%A5%EA%B3%A0django%EC%97%90%EC%84%9C-post-put-delete-%EB%B0%A9%EC%8B%9D-%EC%82%AC%EC%9A%A9-%EC%9C%84%ED%95%B4%EC%84%9C-csrf-%EB%81%84%EB%8A%94-%EB%B0%A9%EB%B2%95%EC%9D%80

 

 

Comments