Django 에서 HTTP Request를 보낼 때에는 1) Form으로 보내는 방법과 2) Ajax 비동기로 보내는 방법이 있으며, CSRF Token을 요청에 포함할 것을 강요한다. CSRF Token을 통해 위조 공격에 대한 보안을 쉽게 작성 할 수 있다.
👉 방법 2가지
- 방법 1) Form 으로 데이터 보내는 방법
- 방법 2) Ajax로 보내는 방법
👉 GIthub 전체 코드 (링크)
👉 코드 - templates/index.html
form 바로 아래에 {% csrf token %} 을 작성해준다.
<html>
<body>
<form method="post" action='/score/'>
{% csrf_token %}
<div>
<label for="score">점수를 입력하세요</label><input type="text" id="score" name="score">
</div>
<button type="submit">점수 제출</button>
</form>
</body>
</html>
👉 코드 - views.py, url.py
views.py
from django.shortcuts import render
from django.http import HttpResponse
def score_func(request):
if request.method == 'GET':
return render(request, 'index.html')
elif request.method == 'POST':
score = int(request.POST.get('score', 0))
print('받은 score 데이터', score)
if score >= 70:
msg = '합격'
else:
msg = '불합격'
return HttpResponse(msg) # or redirect
urls.py
from django.urls import path
from .views import score_func
urlpatterns = [
path('score/', score_func)
]
'Python > Django' 카테고리의 다른 글
[Django] ORM Queryset API - 메소드 정리 (0) | 2022.06.15 |
---|---|
[Django] 무식한 라이브러리 분해 4 (settings.py) (0) | 2022.06.15 |
[Django] CSRF Token + Ajax 비동기 통신 (0) | 2022.06.12 |
[Django, DB] Migration 초기화 방법 (+window 자동화 code) (0) | 2022.06.05 |
[Django] Message Framework (0) | 2022.06.04 |